开发者

How to in Git, clone a remote (GitHub) repository from a specifed date

I'm trying to clone a git repository from a certain date. Even if this is not possible. Is it possible to clone the git repository and then roll it back to a certain date?

Example: my repository has been updated since May 2010, but I'd like to get the version from June 5th. I'd like to run the following command:

git clone git@gi开发者_如何学编程thub.com:projectfolder -date 06-05-2010


Cloning the repository will give you the entire commit history of all the source code.

You need only scroll back through git log and find the desired commit on your target date. Running git checkout SHA where SHA is the commit hash will give you the state of the source code on that date.

edit:

git log --since=2010-06-05 --until=2010-06-06 will help narrow it down!


Maybe something like this:

git log --since=2010-06-05 --until=2010-06-05

Find one of the commit ids you like there then do a git checkout <checkout id>


git clone git@github.com:projectfolder
git reset --hard $(git rev-list -1 $(git rev-parse --until=2010-06-06) master)


You can use git's revert command to revert every commit back to the date you are looking for, or you can just create a a new branch at the commit you are interested in.


Consider the following commits:

5 May (A) -- 7 May -- master (current)
5 May (B) -- 7 May /

There is no way git can figure out whether you want commit A or B. So, you should use git log or gitk to get the SHA1 of the commit from that date you want and then git checkout it.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜