合并到一个分支时修复合并冲突,在另一个分支上混淆提交

时间:2018-04-24 14:37:55

标签: git github

我有developmasterfeature分支。

我在feature分支上做了一些更改,我在master上做了一个公关。我还在develop上制作了一个PR,其中的更改不在master分支上。

事实证明,当我想在develop上制作PR时,我遇到了一些冲突,所以我在Github上修复了它们。

但这基本上做了,develop已合并到我的feature分支上,现在我master分支上的PR已经从develop分支进行了所有这些提交。

我不需要那个。

我尝试使用git revert,但在我的feature分支上没有做任何事情。

有没有办法从feature分支中删除此合并,还是应该关闭此PR并创建一个单独的分支?

分支看起来像这样:

--------------master
  |     |
  |-----|-----------develop
        |------feature

我从master合并,并在developmasterfeature分支发布了PR。

不确定我是如何得到冲突的,但是develop分支上有很多东西。

1 个答案:

答案 0 :(得分:2)

听起来您的工作流程比典型的更复杂/更不线性。如果它满足您的需求,那不一定是坏的,但您可能想看看更结构化的东西(如gitflow)是否满足您的需求,同时确保您面临的大多数问题(以及他们的问题)解决方案)是人们将有更多经验的东西。

(当你使用gitflow中的一些术语时,在gitflow中你不会直接将一个特性合并到master。当然你可能会不时有一个修补程序,那些会直接合并到两个{ {1}}和master,但在这种情况下,您可能首先合并到develop,知道(a)这是修补程序分支从哪里拆分,以及(b){{1}中的所有内容1}}已经在master。)

以上所有都很好,但是现在你就是你的位置,无论如何你可能会看到它并决定你的工作流程对你的项目来说是最好的...所以你如何使这项工作?

所以,如果我明白,你有

master

并且您创建了一个PR以将develop集成到 A -- M <--(master) / ... B -- C -- D <--(develop) ... E -- F <--(feature) 中,但是存在冲突 - 并且在更新feature之前允许进行审核以解决这些冲突时,解析过程已合并进入develop

develop

有很多方法可以解决这个问题,但我会假设在你的情况下最好避免历史记录重写(即避免从任何已发布分支的历史中删除提交)。

在这种情况下,最简单的方法是在feature处为PR创建一个新的分支 A -- M <--(master) / ... B -- C -- D <--(develop) \ ... E -- F -- X <--(feature)

F