我從代碼中刪除了代碼,這個代碼已經搞砸了。我想將我的整個項目恢復到最後一次本地提交。我將如何做到這一點?恢復到本地提交?
Q
恢復到本地提交?
18
A
回答
42
這一切都恢復到您的當前提交(擺脫所有的變化,上演或以其他方式:
git reset HEAD --hard
這將重置所有的以前承諾(也擺脫所有的變化,分級或以其他方式)
git reset HEAD^ --hard
旁邊HEAD ^意味着一個 HEAD之前提交,HEAD是其中喲你現在是。您可以使用^^進行兩次提交,或者使用^^^進行三次提交。此外,您可以使用代字號來指定提交次數:〜3次提交三次提交。
git reset HEAD~3 --hard
另請注意,--hard選項意味着這些命令將丟棄您沒有存儲的任何更改。
10
找到您最近的本地提交git log
並運行git reset --hard <commit sha1>
。
它會刪除所有未提交的本地更改,並且會將HEAD移動到此提交。
2
git pull
可以獲取併合並多個提交。要回到以前的本地狀態(而不是後面的n-commits),可以使用reflog。 git reset --hard @{1}
+0
非常感謝!保存了很多工作! – AbsoluteSith 2017-04-19 16:44:19
總是很高興看到適當的安全警告附加到建議使用'git reset --hard',因爲在這個答案 - 一個令人擔憂的數字stackoverflow答案不... – 2011-05-15 12:16:34
巨大的警告「如果你'已經做了一次拉,因爲你的本地提交這將核彈你的本地提交':)看到這個撤消說球疼http://gitready.com/advanced/2009/01/17/restoring-lost-commits.html – 2015-11-17 16:11:40
@ EdBishop關於Git的好消息是你幾乎從未真的失去過任何東西 – 2016-02-23 02:53:11