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.
精彩评论