LinuxCommandLibrary

git-effort

Analyze effort per file in git repository

TLDR

Display each file in the repository, showing commits and active days

$ git effort
copy

Display files modified by a specific number of commits or more, showing commits and active days
$ git effort --above [5]
copy

Display files modified by a specific author, showing commits and active days
$ git effort -- --author="[username]"
copy

Display files modified since a specific time/date, showing commits and active days
$ git effort -- --since="[last month]"
copy

Display only the specified files or directories, showing commits and active days
$ git effort [path/to/file_or_directory1 path/to/file_or_directory2 ...]
copy

Display all files in a specific directory, showing commits and active days
$ git effort [path/to/directory/*]
copy

SYNOPSIS

git effort [options…​] [path…​]

PARAMETERS

--since=<time>
    Only show commits since the specified time (e.g., '1 month ago')

--until=<time>
    Only show commits up to the specified time

--author=<author>
    Only show commits by the named author

--email=<email>
    Only show commits with the specified author email

-v, --verbose
    Provide more detailed output

--vis
    Visualize the effort with a simple graph

DESCRIPTION

The git effort command generates a report summarizing the contribution efforts of authors in a Git repository. It displays a table sorted by the number of commits in descending order, showing each author's total commits, the date of their first commit, the date of their last commit, and their name or email.

This tool is particularly useful for assessing team contributions, identifying top contributors, or reviewing historical involvement over specific time ranges. By default, it analyzes the entire repository history, but options allow filtering by time periods, specific authors, or paths.

Output resembles a scoreboard, providing quick insights into development efforts without needing complex git log queries. It's a contrib script, often found in Git's examples directory, and must be made executable or symlinked for use.

CAVEATS

This is a contrib script (git/contrib/examples/git-effort), not a core Git command; install by copying to PATH and making executable. Perl required. Output uses fixed-width formatting, may misalign with wide names.

SAMPLE OUTPUT

Commits  1st, last  Author
150 2008-01-01, 2023-10-01 Linus Torvalds
89 2010-05-15, 2023-09-20 Some Developer

HISTORY

Introduced in Git 1.6.0 (2008) as part of contrib/examples. Developed by Jay Soffian for quick effort scoring; remains popular for lightweight analysis despite newer analytics tools.

SEE ALSO

Copied to clipboard