我已经对存储库进行了一系列更改,并且他们被其他人(他们在Windows上编译,但不在Linux上编译)恢复。我认为这些变化仍在历史中,但我怎样才能重新获得这些变化,修复它们,然后重新提交?我该如何修复恢复的git commit?
回答
您是否尝试恢复恢复?
他们恢复使用
git revert <your commit id>
的复归本身就是一个承诺,有其自身提交ID你的提交。所以现在你需要做
git revert <the commit id of his revert-commit>
你可以尝试使用git revert
恢复恢复。您还可以使用git checkout
从提交中恢复文件。或者,您可以使用git cherry-pick -n
重新应用并更改它们。您可以使用git branch
从您的提交中创建一个新分支。可能性(几乎)是无止境的。 :)
+1:'git cherry-pick --no-commit'是一个不错的选择,尤其是因为您可以重复执行以进一步完成更改 – 2011-03-18 16:52:59
其他答案在这里解决如何恢复或樱桃挑选您的提交,但它听起来像问题,如果你还需要知道如何找到你的提交,所以这里有一些指导。
如果您只是运行git log
,您应该从最近一次开始查看当前分支历史记录中的提交列表。每个提交具有技术上称为对象名称标识符(或“上提交的SHA1SUM”),看起来像这样:
commit d2d434beeb03e4ee648ca7ca2a1ea1ed09077306
...其次是作者姓名,日期和那名更改的摘要由该提交引入。当你为git revert
或git cherry-pick
指定对象名称,你可以给它d2d434beeb03e4ee648ca7ca2a1ea1ed09077306
或只是足够的字符从对象名称的开头是明确的(如d2d434bee
)
git log
有许多选项,可以帮助您跟踪下载您的提交,如--before
,-S
等,但在这种情况下,您可能特别需要--author=MyLastName
。
一个图形化的git工具,可以很好地向您展示历史记录,并且可以在每个平台上使用,是gitk --all
。如果您点击您想要恢复的提交,则可以在窗口中间的“SHA1 ID”字段中复制并粘贴其对象名称。
- 1. 如何恢复unpushed git commit
- 2. 恢复以前的git commit?
- 3. 修复上次git commit的修复
- 4. 我该如何在git中恢复-aC?
- 5. 如何在git恢复后修复我的代码?
- 6. 我该如何恢复我的git-daemon存储库
- 7. git rebase drop commit不会恢复我的文件
- 8. 如何恢复GIT中的错误修复?
- 9. 如何恢复和修复Git中的文件更改
- 10. 我该如何修复VS2017?
- 11. 我该如何修复ViewController?
- 12. 恢复Git错误
- 13. git-apply神秘失败,我该如何解决/修复?
- 14. 如何修复已删除的git commit分支或引用?
- 15. 用git commit和恢复(我的愚蠢的方式)修复'不间断的'代码?
- 16. 我该如何结合2'git commit的
- 17. 如何恢复Git仓库
- 18. 如何恢复在git中?
- 19. 如何恢复“git rm -r。”?
- 20. 如何在GIT中恢复?
- 21. 我该如何修复我的代码?
- 22. 我该如何修复我的virtualenv?
- 23. 如何恢复Git软复位?
- 24. 如何修复我的git配置?
- 25. 如何修复git commit历史而不丢失数据?
- 26. 如何修复恢复nuget包错误?
- 27. 如何做hg恢复 - 所有与git?
- 28. 如何恢复从git提交更改?
- 29. git恢复,然后如何更新github?
- 30. 我该如何完成git commit?
继续......我需要知道魔术词,而不仅仅是理论。 – mmr 2011-03-18 16:07:16
对不起,评论的东西对我来说是新的。我将编辑我的帖子。 – 2011-03-18 16:07:37
如果您在查找ID时遇到问题,请向我显示提交日志。 – 2011-03-18 16:09:49