你可以通过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