git-follow follows lifetime changes of a pathspec in Git, providing a simplified log and patch diff.
You can install git-follow via Homebrew or manually.
brew tap nickolasburr/pfa brew install git-follow git clone https://github.com/nickolasburr/git-follow.git cd git-follow make make install By default, files are installed to /usr/local. You can install to an alternate location by passing PREFIX to make install.
For example, make install PREFIX=$HOME/.usr/local.
Configuration values set via git-config(1) can be used to customize the behavior of git-follow.
follow.diff.mode: Diff mode. Choices areinline(default),sxs, andcolorsxs. See--word-diffof git-log(1).follow.log.format: Log format. See--formatof git-log(1) for syntax.follow.pager.disable: Disable pager. Defaults tofalse. Set totrueto disable pager. See--no-pagerof 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>in pathspec. See-Lof 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>to<end>. Omit<end>defaults toEOF.-M,--no-merges: Show commits which have a maximum of one parent. See--no-mergesof git-log(1).-N,--no-patch: Suppress diff output. See--no-patchof git-log(1).-O,--no-renames: Disable rename detection. See--no-renamesof git-log(1).-p,--pager: Force pager when invoking git-log(1). Overridesfollow.pager.disableconfig value.-P,--pickaxe<string>: Show commits which change the # of occurrences of<string>. See-Sof git-log(1).-r,--range<start>[,<end>]: Show commits in range<start>to<end>. Omit<end>defaults toHEAD.-R,--reverse: Show commits in reverse chronological order. See--walk-reflogsof 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.c Display first commit where Git initiated tracking of branch.c
git follow --first -- branch.c Display last 5 commits which affected column.c
git follow --last 5 -- column.c Display last commit where lines 5 through EOF were affected in diff.c
git follow --last --lines 5 -- diff.c Display last 3 commits where lines 10 through 15 were affected in bisect.c
git follow --last 3 --lines 10,15 -- bisect.c Display commits where function funcname was affected in archive.c
git follow --func funcname -- archive.c Display commits in range from aa03428 to b354ef9 which affected worktree.c
git follow --range aa03428,b354ef9 -- worktree.c Display 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.c Display commits up to tag v1.5.3 which affected graph.c
git follow --tag v1.5.3 -- graph.c Display total number of commits which affected rebase.c
git follow --total -- rebase.c git(1), git-branch(1), git-check-ref-format(1), git-config(1), git-diff(1), git-log(1), git-remote(1), gitrevisions(1), git-tag(1)