2010-03-08 65 views
5

如果自早期提交以來已有提交和許多更改,是否有一種簡單的方法可將所有事情恢復爲早期提交的確切狀態?Git:如何將所有事情完全恢復到事先提交的狀態?

如果是這樣,是否有可能很容易切換回目前的狀態,如果我也有這樣的願望?

我已經意識到這個舊提交實際上是正確的,並且希望保留所有更改,以後僅供參考,但未來的所有工作都將基於此舊提交。

回答

6

這聽起來像你想放的一個分支您目前的工作:

git branch saved_work 
git reset --hard previouscommit 

現在,您saved_work分支包含當你想改變先前的工作狀態,如你所願,後來在previouscommitmaster之後的所有內容被倒退至previouscommit

1

提交當前更改:

git commit 

然後籤老犯:

git checkout yourcommit 

添加-f選項會破壞本地的任何改變。

2

由於要返回到以前的狀態:

git stash 
git checkout -b new_branch <tree-ish> 

以上將節省您提交的修改,並允許您創建一個新的分支在具體承諾。

git stash 
git checkout earlier_branch 
+0

我該如何去設置這個簽出的分支是主嗎?我已經意識到這個舊的提交實際上是正確的,並且希望保留所有更改,以後僅供參考,但所有未來的工作都將基於此舊提交。 – 2010-03-08 04:59:32