【问题标题】:How do you resolve a GitHub merge conflict that appears to have everything merged in?您如何解决似乎已合并所有内容的 GitHub 合并冲突?
【发布时间】:2015-07-08 12:23:44
【问题描述】:

我贡献的 repo 在 GitHub 上使用了分叉/变基模式。我觉得我在这里错过了一个概念,因为我没有得到我期望的结果。目前,我的 PR 说它无法合并,因为存在冲突,但是,dev 分支中似乎没有我的不存在的提交。

我采取的步骤如下:

  1. 创建了一个 repo 的分支
  2. 基于 dev 为我的功能创建了一个分支
  3. 进行更改,提交文件
  4. 创建了一个拉取请求

此时,我从 AppVeyor 消息中收到以下错误:

This pull request contains merge conflicts that must be resolved.

建议是“拉动最新的开发,重新建立你的 PR。”

所以,我从我的分支中执行了以下两个命令来从上游(aspnet)更新,然后将我的分支从 dev 中变基:

git fetch aspnet
git rebase aspnet/dev

我希望我的分支将包含来自 aspnet/dev 的所有提交,然后是我的提交。相反,我的更改似乎出现了两次,另一个提交出现在它们之间(所以......没有什么要合并的),我在本地没有冲突并且我已经进入以下状态:

现在,我的更改并不大 - 仅限于单个文件 - 我可能会直接删除 PR 并重新开始,但我想了解我做错了什么以及“正确”的方法是什么去做吧。

这是有问题的 PR:#24 Refactored Clearing of Secrets File

有没有办法解决我的问题,以便 PR 可以合并?

是否有更好的流程可以让 rebase 正常工作?

【问题讨论】:

  • @Amelia 我要重新再次吗?我已经做过一次(根据上面的消息)。

标签: git github merge


【解决方案1】:

好的,所以我必须做几件事。

首先,aspnet/dev 和我的分叉 dev 不同步。为了让它们同步,我做了以下操作:

git fetch aspnet
git checkout dev
git rebase aspnet/dev
git push

接下来我切换回我的分支并清理了一些东西,然后强制推送到 repo/PR:

git checkout misterjames/clear-corrupt-secrets
git rebase -i dev
git push -f

我在交互式 rebase 期间将所有提交压缩为一个提交。

感谢 @david-paquette 提供的解决此问题的建议。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-04
    • 2012-03-01
    • 2011-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-15
    • 2021-05-16
    相关资源
    最近更新 更多