33.34 Git Recover File from Previous Commit

20210403

Recover or revert to the file README.md from a previous (unknown) commit. This is useful if you’ve noticed a file has been perhaps accidentally removed, or you would like to restore the file to a previous version.

First determine the latest commit of the file, assuming that is the commit that you want to undo. Here we list only one commit (-n 1 or --max-count=1), i.e., the latest, from the current branch where HEAD refers to the main (default) branch. The -- indicates that the following arguments are not options but are paths, and indeed in this example we identify a single file of interest, README.md

$ git rev-list -n 1 HEAD -- README.md

d6be5838101f3bc86f01d3a8379063b34a95a71f

This has a hash of d6be583 which can also be used to identify this commit.

We can save the long commit identifier to a shell variable:

$ rev=`git rev-list -n 1 HEAD -- README.md`

Then using that commit identifier as saved in the variable you checkout the prior version of the file:

$ git checkout $rev^ -- README.md

Or replace $rev with the identifier:

$ git checkout d6be5838101f3bc86f01d3a8379063b34a95a71f^ -- README.md

Or simply the hash:

$ git checkout d6be583^ -- README.md


Your donation will support ongoing availability and give you access to the PDF version of this book. Desktop Survival Guides include Data Science, GNU/Linux, and MLHub. Books available on Amazon include Data Mining with Rattle and Essentials of Data Science. Popular open source software includes rattle, wajig, and mlhub. Hosted by Togaware, a pioneer of free and open source software since 1984. Copyright © 1995-2022 Graham.Williams@togaware.com Creative Commons Attribution-ShareAlike 4.0