Get snapshot of a git repo on a particular date

守給你的承諾、 提交于 2019-12-04 22:32:40

问题


Say I have a repo with multiple banches.

Is it possible to get the repo snapshot of some particular date/time using usual git foo? (We currently have code dumps every day, and I am thinking of ways to remove that)

(Assuming no branches are permanently deleted, and the git commit history hasn't been played with)

Edit: Interim branch merges are possible.


回答1:


Beware of the @{<date>}, based on the reflog (meaning, limited by default to 90 days).
See "Specifying Revisions" in git rev-parse.

"git checkout by date" suggests another method:

git checkout `git rev-list -n 1 --before="2013-09-25 5:00" master`

Note this warning though:

rev-list won't work if you have any branches merged.
For example: I wanted to go back on V5 branch but ended up in V4.2 branch.

A more robust way would to add --first-parent:

git checkout `git rev-list -n 1 --first-parent --before="2013-09-25 5:00" master`


来源:https://stackoverflow.com/questions/19030192/get-snapshot-of-a-git-repo-on-a-particular-date

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!