我会尽量简明扼要地描述我目前的情况,非常感谢您的建议。
今天早上我 merge 了一个很大的功能代码分支,结果发现有一个严重错误。为了撤消它,我的同事在 GitHub 中恢复了 merge (有多个提交), pull 之后,一切似乎都很好。
在对功能分支进行一些调整后,我想确保它可以再次进入,所以我在我的功能分支上使用了“git merge master”(就像我一直做的那样)以确保一切都是最新的。
令人惊讶的是,这样做的结果是删除了我需要 merge 回主存储库的所有新代码!
这是由于分支上发生的还原吗?查看 git 日志,我可以看到所有提交仍然存在。更奇怪的是,github 中的 pull 请求没有显示 diff 中的任何原始提交,只有我在恢复后所做的更改。
有人能帮我理解一下吗?
我知道有些人建议简单地还原还原,但我需要干净利落地还原,因为我所做的更改涉及大部分代码的结构。
最佳答案
我曾经遇到过同样的问题。我的解决方案是在将 master merge 回我的分支之前“还原还原”。
这样做的目的是让您拥有所有更改,包括您获得的新修复。
git checkout master
git checkout -b master-with-revert-revered
git revert <revert commit id>
git checkout fixed-branch
git merge master-with-revert-revered
之后,您的固定分支应该可以毫无问题地直接 merge 回主分支。
关于git - 如何重新 merge 在 github 中还原的提交?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30339927/