git-follow follows lifetime changes of a pathspec in Git, providing a simplified log and diff.
You can install git-follow via Homebrew or manually.
brew tap nickolasburr/pfa brew install git-followgit clone https://github.com/nickolasburr/git-follow.git cd git-follow make make installBy default, files are installed to /usr/local. You can install to an alternate location by passing PREFIX to make install.
make install PREFIX="$HOME/.usr/local"git-config(1) settings can be used to customize the behavior of git-follow.
follow.diff.mode Diff mode. Options are inline (default), sxs, and colorsxs. See --word-diff of git-log(1). follow.log.format Log format. See --format of git-log(1) for syntax. follow.pager.disable Disable pager. Options are true or false. Defaults to false. See --no-pager of git(1).
Options can be specified to provide more refined information. If no options are given, all applicable commits will be shown.
-b, --branch <BRANCH> Show commits for <BRANCH> -f, --first Show first commit where Git initiated tracking of pathspec. -F, --func <FUNCNAME> Show commits for function <FUNCNAME>. See -L of git-log(1). -l, --last <COUNT> Show last <COUNT> commits for pathspec. Omit <COUNT> defaults to last commit. -L, --lines <START>[,<END>] Show commits for lines <START>-<END>. Omit <END> defaults to EOF -M, --no-merges Show commits which have a maximum of one parent. See --no-merges of git-log(1). -N, --no-patch Suppress diff output. See --no-patch of git-log(1). -O, --no-renames Disable rename detection. See --no-renames of git-log(1). -p, --pager Force pager when invoking git-log(1). Overrides follow.pager.disable config value. -P, --pickaxe <STRING> Show commits which change the # of occurrences of <STRING> See -S of git-log(1). -r, --range <START>[,<END>] Show commits in range <START>-<END>. Omit <END> defaults to HEAD. -R, --reverse Show commits in reverse chronological order. See --walk-reflogs of git-log(1). -t, --tag <TAG> Show commits specific to a tag. -T, --total Show total number of commits for pathspec. -h, --help, --usage Show usage information. -V, --version Show current version number.
Like standard Git builtins, git-follow supports an optional pathspec delimiter -- to help disambiguate options, option arguments, and refs from pathspecs.
Display commits on branch topic which affected blame.c
git follow --branch topic -- blame.cDisplay first commit where Git initiated tracking of branch.c
git follow --first -- branch.cDisplay last 5 commits which affected column.c
git follow --last 5 -- column.cDisplay last commit where lines 5-<EOF> were affected in diff.c
git follow --last --lines 5 -- diff.cDisplay last 3 commits where lines 10-15 were affected in bisect.c
git follow --last 3 --lines 10,15 -- bisect.cDisplay commits where function funcname was affected in archive.c
git follow --func funcname -- archive.cDisplay commits in range from aa03428 to b354ef9 which affected worktree.c
git follow --range aa03428,b354ef9 -- worktree.cDisplay commits in range from tag v1.5.3 to tag v1.5.4 which affected apply.c
git follow --range v1.5.3,v1.5.4 -- apply.cDisplay commits up to tag v1.5.3 which affected graph.c
git follow --tag v1.5.3 -- graph.cDisplay total number of commits which affected rebase.c
git follow --total -- rebase.c