2012-10-13 185 views
0

我已經在工作階段編輯過一些文件(沒有添加他們的git add -A。沒有承諾)。如何恢復工作階段最後在git中提交?

現在我想恢復更改回到我的本地分支中的最後一次提交。

該怎麼辦?

我已經搜索了一下,發現:

git rebase -i HEAD 

但後來我得到:

Cannot rebase: You have unstaged changes. 
Please commit or stash them. 

那麼,什麼是正確的方式?

+1

可能重複[如何恢復在GIT管理項目以前的狀態的所有本地更改?](http://stackoverflow.com/questions/1146973/how-to-revert-all-local-changes -in-a-git-managed-project-to-state-state) –

回答

2

你可以扔掉了所有的未提交的修改:

git reset --hard 

警告:這真的會擺脫所有的修改正在上演,或只是在你的工作樹,並返回到狀態最後一次提交,請小心使用它。

如果可能再次想你的本地修改,只是想出來的辦法暫時(例如,對別的工作),你可以只是做:

git stash 

...相反

+0

「git checkout -f branch」會做同樣的事情嗎? – PherricOxide

+0

感謝第一個爲我工作:) - 第二個我會記住 – bodokaiser

+0

git結帳。就足夠了嗎? –

2

隨着

git stash 

您可以將當前的工作狀態存儲到藏匿,並將有權訪問的文件以後。在「隱藏」之後,您應該自動進行最後一次提交。

0

只要執行下面的命令。它會刪除您的更改

git reset HEAD . 
git checkout . 
1

如果你不想保留這些更改,然後

git reset --hard 

,或者如果你想保持他們

git reset --soft 

,如果你想保存,所以你可以使用他們的信上,然後

git stash 

將後者應用於

git stash --apply [email protected]{number} 
+0

也注意到了非常容易的'git stash pop'來應用最近的隱藏。 – kayaker243