回答
如果你还没有推这种变化的是,git reset --hard HEAD^
否则,恢复的复归是完全正常的。另一种方法是git checkout HEAD^^ -- .
然后git add -A && git commit
。
git cherry-pick <original commit sha>
将使原有的副本提交,基本上是重新申请的提交
还原的还原会做同样的事情,有一个混乱的提交信息:
git revert <commit sha of the revert>
无论是的这些方法将允许您在不覆盖历史的情况下登录git push
,因为它会在还原后创建新的提交。
当键入犯煞,你通常只需要前5个或6个字符:
git cherry-pick 6bfabc
它看起来愚笨,对我来说。但是我一直处于同样的状况,而且我还是回复了提交的提交。我做了数字还原,所以我必须为每个'还原提交'做出还原。
现在我的提交历史看起来有点奇怪。
这是一个宠物项目,所以它是确定。但是对于现实生活中的项目,我会优先选择上次提交,然后再恢复所有已恢复的代码。
您可能会对我的另一个问题的答案感兴趣:http://stackoverflow.com/questions/10415565/how-to-revert-multiple-commits-as-part-of-a-single-commit – JimmidyJoo 2015-09-24 14:14:52
您可以避免自动提交,并在恢复时使用--no-commit标志选择提交消息,然后提交相关消息 – 2017-07-16 06:09:20
如果你不喜欢“恢复还原”的想法(特别是当这意味着丢失许多提交的历史信息),你总是可以前往关于"Reverting a faulty merge"的git文档。
鉴于下列初始状态
P---o---o---M---x---x---W---x
\ /
A---B---C----------------D---E <-- fixed-up topic branch
(W是你的合并M的初始复归; d和E是修复您最初破碎特性分支/提交)
现在,您可以简单地重放提交A至E,使他们没有“属于”还原后的合并:
$ git checkout E
$ git rebase --no-ff P
您的分支的新副本,现在可以合并为master
股份公司ain:
A'---B'---C'------------D'---E' <-- recreated topic branch
/
P---o---o---M---x---x---W---x
\ /
A---B---C----------------D---E
- 1. 还原一个Git合并提交,然后恢复该还原
- 2. Git:暂时还原推送提交
- 3. 还原交互式git rebase
- 4. Git的合并,然后还原,然后还原的还原
- 5. GIT ...还原
- 6. Aptana git还原
- 7. git重新提交已还原的提交
- 8. 还原使用Git
- 9. 还原git的结帐
- 10. Git恢复还原还是什么?
- 11. 还原git的重置头最后一次提交的变化
- 12. git-hub for windows还原
- 13. Git还原或硬重置
- 14. 在GIT中还原未提交的文件
- 15. 将GitHub PR还原为特定提交
- 16. 将其还原为提交文件
- 17. git没有提交分支 - 还原变化
- 18. 取消http.get请求并还原数据
- 19. 我可以还原还原吗? SQL Server
- 20. 多个还原式还原器
- 21. CUDA:还原还是原子操作?
- 22. 使用还原传奇实现还原
- 23. 如何正确还原PTRACE_TRACEME
- 24. 如何还原合并?
- 25. 如何还原Mercurial hg pull?
- 26. 还原git的复位,推动
- 27. Git还原一个大的PUSHed文件
- 28. 还原变化gitbash,如何告诉gitbash提交信息完毕
- 29. TeamCity还原
- 30. Django .save()还原
不恢复恢复工作? – Mat 2012-01-04 14:00:47
[我该如何修复还原的git commit?](http:// stackoverflow。com/questions/5354682/how-can-i-fix-a-reverted-git-commit) – 2017-04-11 12:14:12