git-standup
Generate stand-up reports from git history
TLDR
Show a given author's commits from the last 10 days
Show a given author's commits from the last 10 days and whether they are GPG signed
Show all the commits from all contributors for the last 10 days
Display help
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
git-log(1), git-shortlog(1), git-status(1), git-branch(1)