git-fame - Man Page
Pretty-print git repository collaborators sorted by contributions.
Examples (TL;DR)
- Calculate contributions for the current Git repository:
git fame
- Exclude files/directories that match the specified regular expression:
git fame --excl "regular_expression"
- Calculate contributions made after the specified date:
git fame --since "3 weeks ago|2021-05-13"
- Display contributions in the specified format:
git fame --format pipe|yaml|json|csv|tsv
- Display contributions per file extension:
git fame --bytype
- Ignore whitespace changes:
git fame --ignore-whitespace
- Detect inter-file line moves and copies:
git fame -C
- Detect intra-file line moves and copies:
git fame -M
Synopsis
git-fame [--help | options] [<gitdir>...]
Description
See <https://github.com/casperdcl/git-fame>.
Probably not necessary on UNIX systems:
git config --global alias.fame "!python -m gitfame"
For example, to print statistics regarding all source files in a C++/CUDA repository (*.c/h/t(pp), *.cu(h)
), carefully handling whitespace and line copies:
git fame --incl '\.[cht][puh]{0,2}$' -twMC
Options
- <gitdir>
Git directory [default: ./]. May be specified multiple times to aggregate across multiple repositories.
- -h, --help
Print this help and exit.
- -v, --version
Print module version and exit.
- --branch=b
Branch or tag [default: HEAD] up to which to check.
- --sort=key
[default: loc]|commits|files|hours|months.
- --loc=type
surv(iving)|ins(ertions)|del(etions) What
loc
represents. Use `ins,del' to count both. defaults to `surviving' unless--cost
is specified.- --excl=f
Excluded files (default: None). In no-regex mode, may be a comma-separated list. Escape (\,) for a literal comma (may require \\, in shell).
- --incl=f
Included files [default: .*]. See
--excl
for format.- --since=date
Date from which to check. Can be absoulte (eg: 1970-01-31) or relative to now (eg: 3.weeks).
- --cost=method
Include time cost in person-months (COCOMO) or person-hours (based on commit times). Methods: month(s)|cocomo|hour(s)|commit(s). May be multiple comma-separated values. Alters
--loc
default to imply `ins' (COCOMO) or `ins,del' (hours).- -R, --recurse
Recursively find repositories & submodules within .
- -n, --no-regex
Assume are comma-separated exact matches rather than regular expressions [default: False]. NB: if regex is enabled `,' is equivalent to `|'.
- -s, --silent-progress
Suppress
tqdm
[default: False].- --warn-binary
Don’t silently skip files which appear to be binary data [default: False].
- -e, --show-email
Show author email instead of name [default: False].
- --enum
Show row numbers [default: False].
- -t, --bytype
Show stats per file extension [default: False].
- -w, --ignore-whitespace
Ignore whitespace when comparing the parent’s version and the child’s to find where the lines came from [default: False]. -M Detect intra-file line moves and copies [default: False]. -C Detect inter-file line moves and copies [default: False].
- --ignore-rev=rev
Ignore changes made by the given revision (requires
--loc=surviving
).- --ignore-revs-file=f
Ignore revisions listed in the given file (requires
--loc=surviving
).- --format=format
Table format [default: pipe]|md|markdown|yaml|yml|json|csv|tsv|tabulate. May require
git-fame[<format>]
, e.g.pip install git-fame[yaml]
. Anytabulate.tabulate_formats
is also accepted.- --manpath=path
Directory in which to install git-fame man pages.
- --log=lvl
FATAL|CRITICAL|ERROR|WARN(ING)|[default: INFO]|DEBUG|NOTSET.
Authors
Casper da Costa-Luis <https://github.com/casperdcl>.