假设我需要处理两个功能:FEATURE1
和FEATURE2
。 FEATURE2
是相关的,应该在FEATURE1
之上开发。
我从FEATURE1
创建了MASTER
。通常最好的方案是完成FEATURE1
,合并回MASTER
,然后直接从FEATURE2
分支MASTER
。
但是在这种情况下有一些限制:
FEATURE1
差不多完成了,但无法立即合并到MASTER
。FEATURE2
的工作应从FEATURE1
停止的地方开始。FEATURE1
和FEATURE2
应该分别合并到MASTER
(他们应该单独测试/验证 )。< / LI>
FEATURE1
可能会有一些额外的更改,然后才能合并到MASTER
( 上FEATURE2
的工作已经开始了。)因此,对于这种情况,问题是:
FEATURE2
分支FEATURE1
(如图中所示)是一个不错的选择?FEATURE1
和FEATURE2
(单独)合并回MASTER
时,应该采取哪些措施来尽量减少可能发生的冲突?
答案 0 :(得分:1)
从FEATURE1
分支是正确的选择,并且不应该有太多麻烦。
假设FEATURE1
开发将在分支到FEATURE2
之后继续,您可以单独合并这两个,git会处理它。
当然,如果FEATURE1
和FEATURE2
同时操作相同文件的同一行,您将会按照惯例进行合并冲突,并且在继续之前您需要解决它们与你合并。但是,如果他们没有触及相同的行,则不会发生任何合并冲突,并且可以随意将它们合并。
如果FEATURE1
分支在FEATURE2分支后没有任何进一步的提交,并且FEATURE2
被合并回主服务器,则您将无法单独合并FEATURE1
(作为{{ 1}}已包含FEATURE2
)中的所有提交。
答案 1 :(得分:1)
我会根据您当前feature2
的状态分支feature1
。
在feature1
开发新API(案例1)或feature1
已准备好投放并已合并到master
(案例2)后,您应该重新定义{{1在feature2
(案例1)或feature1
(案例2)。
案例1,master
是新的API或更正:
Q
案例2,master A B C D
\
feature1 M N P Q
\
feature2 X' Y' Z'
是M
和feature1
的合并提交:
master