git-standup

nilbuildMIT长期未更新

从 Git 提交记录里自动汇总你或团队上个工作日的改动,方便站会前快速回顾进度,不用手动翻日志。

Recall what you or your team did on the last working day

2.3.2发布于 2020-02-20 09:31 UTC7,855star +1 / 7 天321fork同步于 2026-11-10 11:32 UTC

怎么上手

由 README 提炼,执行前请确认
npm install -g git-standup
或 curl -L https://raw.githubusercontent.com/kamranahmedse/git-standup/master/installer.sh | sudo sh
硬件要求按 README 说明

README 未说明,纯 Shell 脚本,无特殊硬件要求

下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

按作者和日期汇总多个 Git 仓库的提交,快速生成 standup 报告

从 Git 提交记录里自动汇总你或团队上个工作日的改动,方便站会前快速回顾进度,不用手动翻日志。

核心能力

  • 递归扫描目录下多个 Git 仓库并逐个输出提交
  • 用 -a 按作者过滤,支持 all 和正则排除
  • 用 -d/-u/-A/-B 按天数或日期区间筛选提交
  • 用 -w 自定义工作周起止日(如 SUN-THU)
  • 用 -f 先执行 git fetch --all 再生成报告

容易踩的坑

默认只递归当前目录及下一层,需用 -m 加深或用 -F 强制递归;-a 使用正则排除作者前需先执行 git config --global grep.patternType perl;-d 指定天数会覆盖 -w 的工作周配置。

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本2.3.2
  1. 2.3.2最新正式版2020-02-20 · 2020-02-20 09:31 UTC
  2. 2.3.02018-11-23 · 2018-11-23 13:45 UTC
    查看更新说明

    Adds author date - use -R flag to print author date instead of committer date

  3. 2.2.0v2.2.02018-10-05 · 2018-10-05 12:02 UTC
    查看更新说明
  4. 2.1.72016-05-05 · 2016-05-05 11:28 UTC

    这个版本没有写更新说明。

  5. 2.1.42016-04-29 · 2016-04-29 10:56 UTC

    这个版本没有写更新说明。

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    git-standup

    Recall what you did on the last working day ..or be nosy and find what someone else did.

    A little tool that I always wanted for myself. I work on several repositories on daily basis and it is mostly difficult for me to remember where I left off in each one of them. git-standup helps me with running standups and keeping track of what I have been doing. By default it gives you the most common usage i.e. shows you commits from the last working day in the current directory and the directories below current level plus it comes with several options to modify how it behaves.

    Requirements

    The only requirement is having good commit messages :)

    Install

    You can install git-standup using one of the options listed below

    SourceCommand
    curlcurl -L https://raw.githubusercontent.com/kamranahmedse/git-standup/master/installer.sh | sudo sh
    npmnpm install -g git-standup
    brewbrew update && brew install git-standup
    aurpacaur -S git-standup-git
    manualClone and run make install

    Usage

    Simply run it in your project directory and it will give you the output from the last working day

    git standup
    

    If you run it in a folder containing multiple git repositories, it will go through each of the projects and give you the standup report for each one of them.

    Options

    You can pass several options to modify how git-standup behaves

    git standup [-a <author name>]
                [-w <weekstart-weekend>]
                [-m <max-dir-depth>]
                [-F]
                [-b <branch-to-use>]
                [-d <since-days-ago>]
                [-u <until-days-ago>]
                [-D <date-format>]
                [-A <after-date>]
                [-B <before-date>]
                [-L]
                [-g]
                [-h]
                [-f]
                [-s]
                [-r]
                [-c]
                [-R]
    

    Here is the detail for each of the options

    OptionDescription
    aSpecify author to restrict search to e.g. -a "Kamran Ahmed" or -a "all"
    bSpecify branch to restrict search to (unset: all branches, "$remote/$branch" to include fetches)
    wSpecify week start and end days e.g. in UAE weekdays are from Sunday to Thursday so you can do -w SUN-THU
    mSpecify the depth of recursive directory search e.g. -m 3 defaults to two
    FForce recursion up to specified depth even when git repository found earlier
    dSpecify the number of days back to include e.g. -d 30 to get for a month
    uSpecify the number of days back till which standup should run e.g. -u 3
    LToggle inclusion of symbolic links in recursive directory search
    DSpecify the date format for "git log" (default: relative) possible values
    AShow the commits till after the given date
    BShow the commits till before the given date
    hDisplay the help screen
    gShow if commit is GPG signed (G) or not (N)
    fFetch the latest commits beforehand
    sSilences the no activity message (useful when running in a directory having many repositories)
    cShow diff-stat for every matched commit
    rGenerates the standup report file git-standup-report.txt in the current directory
    RDisplay the author date instead of the committer date

    For the basic usage, all you have to do is run git standup in a repository or a folder containing multiple repositories

    Single Repository Usage

    To check all your personal commits from last working day, head to the project repository and run

    $ git standup
    

    git standup

    Multiple Repository Usage

    Open a directory having multiple repositories and run

    $ git standup
    

    git standup

    This will show you all your commits since the last working day in all the repositories inside.

    Directory depth

    By default the script searches only in the current directory or one level deep. If you want to increase that, use the -m switch. If the base directory is a git repository you can use the -F switch to force the recursion.

    $ git standup -m 3
    

    Checking someone else's commits

    If you want to find out someone else's commits do

    # Considering their name on git is "John Doe"
    $ git standup -a "John Doe"
    

    Apart from restrict to commits from a certain user, you can also use -a flag to avoid certain users. You can do that if you enable perl regexp in your git installation git config --global grep.patternType perl, and use the author filter like below:

    git standup -a'^(?!(renovate\[bot\]))'
    

    git standup

    Check what every contributor did

    If you want to find out someone else's commits do

    $ git standup -a "all"
    

    Commits from n days ago

    If you would like to show all your/someone else's commits from n days ago, you can do

    # Show all my commits from 4 days ago
    $ git standup -d 4
    
    # Show all John Doe's commits from 5 days ago
    $ git standup -a "John Doe" -d 5
    

    git standup -d 5

    Date filters

    You can apply the filters on the commits shown. Use -A and -B flags to specify after and before dates

    # Show all the commits after October 01, 2018
    git standup -A "2018-10-01 00:00"
    # Show all the commits till before October 01, 2018
    git standup -B "2018-10-01 00:00"
    # Show the commits between September 20 and September 30
    git standup -A "2018-09-20 00:00:00" -B "2018-09-30 23:59"
    

    Show Diff-stat

    Add -c flag to show the diff-stat for each of the commits in standup results

    git standup -c
    

    Identifying Signed Commits

    Add -g flag to check the GPG info

    $ git standup -g
    

    GPG Info

    Specifying the date format

    Add -D flag to specify the date format. Default is relative

    Please note that it accepts the same format that you could pass while doing git log. For example

    $ git standup -D relative
    # Or instead of relative, it could be local|default|iso|iso-strict|rfc|short|raw etc
    

    Branch Filter

    Use of -b foobar option, which restricts returned results to commits present on branch foobar. Supports arbitrary branch specs, so for example -b origin/foobar would include data present on the remote that has not been merged locally.

    # Use develop branch for standup
    git standup -b develop
    

    Directory whitelisting

    If you want to restrict the standup to some paths, you can whitelist them by adding them to a .git-standup-whitelist file. For example if you have the below directory structure

    ├── Workspace              # All your projects are here
    │   ├── project-a          # Some git repository called project-a
    │   ├── project-b          # Some git repository called project-b
    │   ├── sketch-files       # Some sketch files
    │   ├── mockups            # Some balsamiq mockups
    │   └── ...                # etc.
    └── ...
    

    And you want the git-standup to show logs for only project-a and project-b, you can do that by creating a .git-standup-whitelist file under the Workspace directory with the below contents and it will only consider these directories for the standup

    project-a
    project-b
    

    Changing the Weekdays

    By default, it considers that the work week starts on Monday and ends on Friday. So if you are running this on any day between Tuesday and Friday, it will show you your commits from the last day. However, if you are running this on Monday, it will show you all your commits since Friday.

    If you want to change this, like I want because here in Dubai working days are normally Sunday to Thursday, you will have to do the following

    $ git standup -w "SUN-THU"
    

    Fetch commits before showing standup

    If you have many repositories that you want to generate a standup for, it may be useful to automatically run git fetch before viewing the standup.

    If you would like to automatically run git fetch --all before printing the standup, you can add the -f flag, as show below

    $ git standup -f
    

    Mixing options

    Of course you can mix the options together but please note that if you provide the number of days, it will override the weekdays configuration (MON-FRI) and will show you the commits specifically from n days ago.

    # Show all the John Doe's commits from 5 days ago
    $ git standup -a "John Doe" -d 5
    

    License

    MIT © Kamran Ahmed