LinuxCommandLibrary

git-standup

Generate stand-up reports from git history

TLDR

Show a given author's commits from the last 10 days

$ git standup -a [name|email] -d [10]
copy

Show a given author's commits from the last 10 days and whether they are GPG signed
$ git standup -a [name|email] -d [10] -g
copy

Show all the commits from all contributors for the last 10 days
$ git standup -a all -d [10]
copy

Display help
$ git standup -h
copy

SYNOPSIS

git standup [-d days] [-r repo] [-b branch] [-s] [-g] [-a] [-L] [-m|-M|-x|-j|-t] [-c|-C] [-D date] [--email email] [--author author] [--remote] [--pull] [--stashes] [--grep pattern] [--exclude pattern] [--include pattern] [--git-log-options options] [--group-by type] [-h] [-v]

PARAMETERS

-d days
    Show commits from the last N days.

-r repo
    Limit report to commits in the specified repository path.

-b branch
    Limit report to commits on the specified branch.

-s
    Suppress git status output for a cleaner view.

-g
    Suppress git branch output.

-a
    Show all commits, not just those by the current user.

-L
    List all local repositories discovered, without showing commits.

-m
    Format output in Markdown.

-M
    Format output in Markdown, including full commit messages.

-x
    Output report in XML format.

-j
    Output report in JSON format.

-t
    Output a plaintext summary table.

-c
    Only list repositories that contain commits.

-C
    Only list repositories that contain commits, excluding merge commits.

-D date
    Show commits made after a specific date (e.g., "yesterday", "2023-01-01").

--email email
    Filter commits by author's email address.

--author author
    Filter commits by author's name.

--remote
    Include commits from remote tracking branches.

--pull
    Perform a git pull in each repository before scanning for commits.

--stashes
    Include information about pending stashes in the report.

--grep pattern
    Filter commits by log message content using a regex pattern.

--exclude pattern
    Exclude repositories whose paths match the specified pattern.

--include pattern
    Include only repositories whose paths match the specified pattern.

--git-log-options options
    Pass additional options directly to the git log command.

--group-by type
    Group commits by 'author' or 'repo' (repository).

-h
    Display help message and exit.

-v
    Display version information and exit.

DESCRIPTION

git-standup is a lightweight command-line utility designed to quickly summarize recent Git activity. Its primary use case is to help developers recall and report on their work for daily stand-up meetings.
By default, it lists commits made by the current user today and yesterday. The command can traverse directories to find multiple Git repositories and aggregate their commit logs into a single report, providing a comprehensive overview of work across various projects.
It supports filtering by days, branches, authors, and dates, and offers various output formats, including plaintext, Markdown, XML, and JSON, making it adaptable for different reporting needs.

CAVEATS

git-standup relies on git being installed and available in the system's PATH. For optimal use across multiple projects, it is recommended to organize Git repositories within a common parent directory. Running the command from a very deep directory structure or with a very large number of repositories without specific filters might impact performance.

CONFIGURATION

git-standup can be configured using environment variables, such as GIT_STANDUP_DAYS to set the default number of days to look back, or GIT_STANDUP_GIT_LOG_OPTIONS to pass custom default options to git log. These variables allow users to tailor the command's behavior without explicitly passing options every time.

MULTI-REPOSITORY USAGE

When executed from a directory containing multiple Git repositories (or directories that contain Git repositories), git-standup will automatically scan and aggregate commit information from all detected repositories, making it ideal for developers working across numerous projects.

HISTORY

git-standup was created by Jonas Lundberg as a practical utility to simplify the process of recalling and reporting daily Git activities, particularly for agile stand-up meetings. Its development has focused on providing a flexible, easy-to-use script that integrates seamlessly with existing Git workflows, offering various filtering and output options to suit different user needs.

SEE ALSO

Copied to clipboard