Search this blog...

Git prevision

Need to quickly check a previous version of a specific file?...
Do not want to switch the entire repository to an older commit and back?...

A combination of git aliases/awk/shell-functions to the rescue
Here is a quick and intuitive way to checkout a older version of a single file in git.

Start by adding the following alias to your gitconfig.
[alias]
prevision = "!f() { git checkout `git log --oneline $2 | awk -v commit="$1" 'FNR == -commit+1 {print $1}'` $2;} ;f"
Usage:
$ git prevision <N> <filename>
will checkout the <N>th revision (counting backwards from HEAD) into the history of the file <filename>.
For example to checkout the immediate previous version of a file x/y/z.c use
$ git prevision -1 x/y/z.c
Have fun!
view raw git-prevision hosted with ❤ by GitHub
Basically the command does a git log on the specified file and picks the appropriate commit-id in the history of the file and then runs git checkout to the commit-id for the specified file.

Essentially, all that one would manually do in this situation, wrapped-up in one beautiful, efficient git-alias - git-prevision
Liked git-prevision? Help others discover git-prevision.
Upvote git-prevision on StackOverflow.

No comments :

Post a Comment