我已經在工作階段編輯過一些文件(沒有添加他們的git add -A
。沒有承諾)。如何恢復工作階段最後在git中提交?
現在我想恢復更改回到我的本地分支中的最後一次提交。
該怎麼辦?
我已經搜索了一下,發現:
git rebase -i HEAD
但後來我得到:
Cannot rebase: You have unstaged changes.
Please commit or stash them.
那麼,什麼是正確的方式?
我已經在工作階段編輯過一些文件(沒有添加他們的git add -A
。沒有承諾)。如何恢復工作階段最後在git中提交?
現在我想恢復更改回到我的本地分支中的最後一次提交。
該怎麼辦?
我已經搜索了一下,發現:
git rebase -i HEAD
但後來我得到:
Cannot rebase: You have unstaged changes.
Please commit or stash them.
那麼,什麼是正確的方式?
你可以扔掉了所有的未提交的修改:
git reset --hard
警告:這真的會擺脫所有的修改正在上演,或只是在你的工作樹,並返回到狀態最後一次提交,請小心使用它。
如果可能再次想你的本地修改,只是想出來的辦法暫時(例如,對別的工作),你可以只是做:
git stash
...相反
「git checkout -f branch」會做同樣的事情嗎? – PherricOxide
感謝第一個爲我工作:) - 第二個我會記住 – bodokaiser
git結帳。就足夠了嗎? –
隨着
git stash
您可以將當前的工作狀態存儲到藏匿,並將有權訪問的文件以後。在「隱藏」之後,您應該自動進行最後一次提交。
只要執行下面的命令。它會刪除您的更改
git reset HEAD .
git checkout .
現在您深入瞭解,我強烈建議您閱讀本文,並將其永久理解。 http://git-scm.com/2011/07/11/reset.html
如果你不想保留這些更改,然後
git reset --hard
,或者如果你想保持他們
git reset --soft
,如果你想保存,所以你可以使用他們的信上,然後
git stash
將後者應用於
git stash --apply [email protected]{number}
的
也注意到了非常容易的'git stash pop'來應用最近的隱藏。 – kayaker243
可能重複[如何恢復在GIT管理項目以前的狀態的所有本地更改?](http://stackoverflow.com/questions/1146973/how-to-revert-all-local-changes -in-a-git-managed-project-to-state-state) –