我有develop
,master
和feature
分支。
我在feature
分支上做了一些更改,我在master
上做了一个公关。我还在develop
上制作了一个PR,其中的更改不在master
分支上。
事实证明,当我想在develop
上制作PR时,我遇到了一些冲突,所以我在Github上修复了它们。
但这基本上做了,develop
已合并到我的feature
分支上,现在我master
分支上的PR已经从develop
分支进行了所有这些提交。
我不需要那个。
我尝试使用git revert
,但在我的feature
分支上没有做任何事情。
有没有办法从feature
分支中删除此合并,还是应该关闭此PR并创建一个单独的分支?
分支看起来像这样:
--------------master
| |
|-----|-----------develop
|------feature
我从master
合并,并在develop
和master
从feature
分支发布了PR。
不确定我是如何得到冲突的,但是develop
分支上有很多东西。
答案 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