如何将拉取请求带到"状态可以自动合并"?

时间:2016-09-30 15:07:52

标签: git github

我已从dev分支分支到feature分支并进行了一些提交。现在,当我发送一个拉取请求将feature分支合并到dev分支时,我注意到github上由于一些冲突的变化,分支无法自动合并。为了使我的feature分支进入&#34状态,我需要做什么才能自动合并"?

我目前所做的是:

  1. 结帐dev分支
  2. 合并feature分支
  3. 记住导致冲突的行
  4. 结帐feature分支
  5. 手动将每一行恢复为dev分支
  6. 的状态
  7. 提交并推送补丁
  8. 但这看起来像很多手工。所以我想知道这是否可以以某种方式简化?

    更新

    请注意,我希望将feature分支更改与develop分支隔离开来(以便跟踪哪个分支引入了回归并将每个新功能与其他功能隔离开来)。因此,虽然将dev合并/重新定位到feature可以解决问题,但它会将dev中所做的所有更改带入feature,我会失去隔离。

1 个答案:

答案 0 :(得分:3)

几个假设:您从dev分出了一个分支,并将其称为feature,并且您希望将feature合并到dev

您的分支feature无法合并到dev branch because someone has already made changes to dev`,git不能自动解决冲突。

在这种情况下,您可以采取两种方法

  1. Rebase - 在这种情况下,您将按照以下步骤操作
    • 结帐dev
    • 从远程拉
    • 结帐feature
    • git rebase dev - 在内部,此 1)会删除所有超出最后的提交 提交featuredev相同 2)适用于所有dev 提交 3)逐个应用所有feature提交 - 并作为时间 发生冲突时,git会提示您修复冲突。最后一步 重复,直到所有提交已成功应用回 feature分支。
    • 将所有更改推送到feature branch remote
    • 发送拉取请求: - )
  2. 这是我一直遵循的,建议您定期从父母分支拉取以避免冲突。这将在git commit history中创建一个菱形结构。

    1. 第二个是合并,但我使用并发现rebase更清洁并始终使用它。