我犯了两次错误。如何恢复两次提交并只提交好东西?如何恢复两次提交并只提交好东西?
回答
你可以做一个git rebase -i HEAD~2
,然后使用该接口放弃自那时起就存在的“坏提交”并清理你的历史。然而,这改变了项目的历史,如果你已经推动(和其他人)你的改变,那么就有一些社会问题需要解决。
其他选项是git revert
这些更改。然后将2个新的提交添加到历史记录中,这使得您不希望在项目历史记录中明确指出这两个提交。不太干净,但更容易处理。
我的同事们会抱怨说,糟糕的承诺曾经在那里开始。在尝试合并分支之前最好摆脱它。感谢您提供'git rebase -i'答案,而不只是说“你不是真的想这么做!”像许多人一样! –
在这种情况下,另一个有用的命令是'git push --force',以防你已经推送了错误提交。 –
'--force'选项具有破坏性。如果其他人对你的提交进行了修改并将它们推送到版本库,那么你的强制推进将会破坏所有的提交。 –
首先,git reset HEAD~2
放弃前两个提交,同时让您的工作树完全按照原样。然后,只需用你想要的创建一个新的提交(例如,用git add
,然后用git commit
)。
请参阅Reset Demystified作者:Scott Chacon了解经常易混淆的git reset
comamnd的详细信息。
我只会这样做是只提交本地,如果他们是公开的我会使用最后2次提交 – ryanzec
是的,我假设OP没有推动任何地方的不正确提交。 –
- 1. GIT:恢复上次提交?
- 2. Git:如何通过一次提交恢复一系列提交
- 3. 如何恢复SVN提交?
- 4. 如何合并已恢复的提交?
- 5. git恢复已提交的提交
- 6. 恢复git提交
- 7. 如何作为单次提交的一部分恢复多次提交
- 8. 恢复git中的多次提交
- 9. Git恢复提交并添加更改,即使在提交更多提交后
- 10. 告诉Git提交是否合并/恢复提交
- 11. 表格不提交任何东西
- 12. 提交表单,如果行动==东西
- 13. 如何恢复在github web界面上提交的提交
- 14. Subversion合并提交和前次提交
- 15. Git合并主无需恢复提交
- 16. 合并时排除恢复提交
- 17. Wicket - 呈现之前提交的东西提交
- 18. 如何在同一个提交的rebase之后恢复合并提交?
- 19. 恢复git回购倒数第二次提交,同时抛弃上次提交
- 20. GitHub:恢复旧提交
- 21. Git恢复本地提交
- 22. Git:恢复旧的提交
- 23. 恢复到本地提交?
- 24. 如何让Mercurial再次提交提交?
- 25. 如何恢复到早期提交
- 26. 如何恢复本地提交git
- 27. 如何恢复错过的提交?
- 28. Git + Intellij - 如何恢复本地提交?
- 29. 如何恢复从git提交更改?
- 30. Git如何恢复旧提交
什么是好东西?你能否更详细地描述你的历史现在看起来如何,你想如何看待? – svick
如果得到正确的答案(好东西?),稍微详细一点会有所帮助。 – ryanzec
在您提交其他所有内容之前删除所有不良内容。 –