你可以通過git命令撤銷過去的提交,它已經被合併到你的git倉庫中嗎?或者是否必須手動撤消在該提交中所做的所有更改?撤消git commit
回答
你可以隨時恢復的變化從一個單一的承諾做:
git revert <commit-id>
注意,這將創建一個新的提交,撤銷只是這些變化
例如git log --oneline
d806fc9 two
18cdfa2 bye
62c332e hello
c7811ee initial
說我要恢復變化承諾18cdfa2
:
git revert 18cdfa2
我們現在有:git log -1 -p
commit fb9d6627a71636503fc9a1eb4f725937c783ecee
Author: Seth <[email protected](none)>
Date: Wed Oct 3 10:32:46 2012 +0200
Revert "bye"
This reverts commit 18cdfa27c964b66b624be1030250757b745d6866.
diff --git a/a b/a
index 0907563..3b18e51 100644
--- a/a
+++ b/a
@@ -1 +1 @@
-bye world
+hello world
你總是可以做git revert <commit-hash>
撤消git的承諾。但是,這在大多數情況下是沒有用的,因爲它創建了一個新的提交,添加到你的git reflog。
當我必須退後一步是我的分支恢復到較早的階段我最常做的。爲此,請執行git reflog並查找要移至的HEAD位置。
[email protected]:~/myrepo$ git reflog -3
8d386b8 [email protected]{0}: commit: I did something I don't want
2a59955 [email protected]{1}: commit: Feedback from PR #792
1023102 [email protected]{2}: checkout: moving from one branch to another
現在,說我想要移動到提交哈希2a59955
,並撤消在8d386b8
所有更改。我會這樣做:
Update: git reset --soft [email protected]{1}
這將重置我的分支到初始狀態。這樣做不僅會取消所有更改,還會停止跟蹤可能在此提交中添加的所有文件。無論如何,這是撤銷單個提交中所有更改的最有效方法。
這將撤消所有更改。有一個硬復位意味着時光倒流(至少從git的角度來看)。使用
--hard
代替--soft
這個
我認爲它有助於部分*因爲它創建了一個新的提交。如果你想撤消你的撤消呢?如果你後來想知道你已經完成恢復,該怎麼辦? 另外,還應該提到+提交,因爲重置不會像這樣改變提交歷史。 – eis
是的,它不,我同意重要的是有一個還原提交的歷史。當您想要退回並從最後一個狀態重新開始時,重置會有所幫助。此外,重置仍保留在日誌中,並不像您完全抹掉提交。 – rizwaniqbal
SOFT!你使用SOFT!你用這個命令丟失你的改變。我正在尋找如何撤消一個提交太多(該死的,intellij)的提交,所以這是對下一個人的警告。 – cmp
- 1. 撤消git commit --amend
- 2. 撤消git add和git commit以及一種git push原點
- 3. 在rebase後撤銷git commit
- 4. 撤消Git rebase --abort
- 5. 撤消Git Clean
- 6. 撤消git的承諾
- 7. Git撤消合併回覆後的unpushed commit
- 8. 如何在git中「撤消撤消」?
- 9. git分支撤消提交
- 10. 撤消git存儲,git pull
- 11. 可以在Git中「撤消」我最後的「撤消」嗎?
- 12. 撤消'git push'的問題
- 13. 撤消在GIT中刪除
- 14. Git - 撤消更改
- 15. git撤消更改
- 16. 撤消git push mirror
- 17. 撤消多個git合併
- 18. 如何撤消git merge squash?
- 19. IntelliJ git commit消息模板
- 20. 如何撤消git的附加承諾
- 21. Git - 撤消所有更改更改
- 22. ^在Git commit消息中的M個字符(git commit -v)
- 23. 如何在`git push`後在本地和遠程撤銷`git commit`
- 24. git commit -m vs git commit -am
- 25. 撤消git的刪除
- 26. 撤消一堆Git混亂
- 27. 撤消一個git存儲
- 28. 如何撤消Git回滾
- 29. GIT撤消分支-D
- 30. Git:如何「撤消」合併
曾經作過'git的一看犯--amend'到modifiy上次提交或'混帳revert'在這裏你可以設置你要回滾提交的ID。妍可以找到提交的帶有'混帳log' ID [Git的修改(http://git-scm.com/book/en/Git-Basics-Undoing-Things) [Git的還原(HTTP:// gitready。 com/intermediate/2009/03/16/rolling-back-changes-with-revert.html) – dasheddot