git - 如何重新 merge 在 github 中还原的提交?

标签 git github version-control revert

我会尽量简明扼要地描述我目前的情况,非常感谢您的建议。

今天早上我 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/

相关文章:

git - 在最初创建提交的 Bitbucket 上找到 Pull Request

git - 如何设置 magit 提交作者?

github - 多分支管道作业未显示打开的拉取请求

svn - 如果我们从主干中删除代码,它会从所有其他分支和标签中删除它吗?

git - 使用 git-svn 重新启用镜像

javascript - 删除 git status 中出现的未跟踪文件

git - 如何在git中从一个远程分支 pull 到另一个分支?

Github 提交消息转义 "@"字符

通过 https 代理使用时 git clone 超时

version-control - 将推送的命名分支与默认分支 merge 会导致错误