2013-01-08 136 views
2

有沒有辦法回滾到git(對於整個回購)檢查的更早版本?我不想改變回購協議中的內容,我只想要9個月前回購協議的本地副本。Git:回滾到早期版本

回答

2

是的,只是克隆回購...

git clone <repo-url> 

...找到犯,分支或標記,你從10個月前要...

git log 
git branch 
git tag 

...和然後結帳舊版本...

git checkout <commit-sha1, branch, tag> 

請記住,如果您簽出提交,您將處於分離的HEAD模式。如果您希望進一步提交,您可以創建一個到該提交的分支。

+0

非常感謝您的幫助。這個git倉庫沒有分支。這只是很多提交...當我這樣做:git結帳我收到一個錯誤「錯誤:以下untracked工作樹文件將被結帳刪除:」有沒有辦法解決這個問題? – Sparky1

+0

@ Sparky1你可以'藏匿'你的改變,將它們提交給一個分支,或者刪除它們。 – alex

+0

這是一個新鮮的克隆。自克隆以來我沒有做任何改變。你是說我需要隱藏在我想要回滾的提交後的9個月內發生的所有提交? – Sparky1

2

你可以從字面上告訴git在9個月前結帳分支。下面是我的一個項目爲例:

:; git checkout '[email protected]{9 months ago}' 
Checking out files: 100% (625/625), done. 
Note: checking out '[email protected]{9 months ago}'. 

You are in 'detached HEAD' state. You can look around, make experimental 
changes and commit them, and you can discard any commits you make in this 
state without impacting any branches by performing another checkout. 

If you want to create a new branch to retain commits you create, you may 
do so (now or later) by using -b with the checkout command again. Example: 

    git checkout -b new_branch_name 

HEAD is now at b50869f... ignore DerivedData 

的指定修訂the git-rev-parse man page都記錄方式全部。