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 elsewhere 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.
Configuration Description Settings Default follow.diff.mode Diff mode to use with git-diff(1), git-log(1), git-show(1), etc.See --word-diff of git-log(1).inlinesxscolorsxsinlinefollow.log.format Log format to use with git-log(1).See --format of git-log(1) for syntax. - -follow.pager.disable Disable pager used with git-diff(1), git-log(1), git-show(1), etc.See --no-pager of git(1).truefalsefalse
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 X[,Y] Show commits for lines X through Y.Omit Y 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 frequency of STRING in revision history.See -S of git-log(1).-r, --range X[,Y] Show commits in range X through Y.Omit Y 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 tag 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