我有一个dev
分支将我的功能分支合并到。实际情况。
假设我有2个功能分支:feaA
和feaB
。
feaA
建立在dev
之上。 feaB
建立在feaA
之上,因此它具有feaA
的所有提交
(对于最有可能与feaB
无关的文件,feaB
建立在feaA
之上,原因是,例如,当我们想要对{{1}执行一些清理时},然后跳转到构建feaA
而不是feaB
并从checkout dev
创建feaB
分支。
如何隔离dev
和feaA
以便feaB
没有来自feaB
的提交?
假设我已经创建了2个PR,其中1个来自feaA
要合并到dev中,另一个来自feaA
。我如何隔离2个PR,目标是让代码审阅者更容易阅读feaB
的PR,而不是被feaB
的PR更改所困扰,而两个PR仍然未决
热烈欢迎命令行答案。
感谢。
答案 0 :(得分:1)
rebase feaB丢弃属于feaA的更改:
git rebase --onto dev feaA feaB
答案 1 :(得分:1)
实际上两个拉取请求是相关的,您只需创建一个拉取请求即可将feaB
合并到dev
。那是因为feaA
合并到dev
或feaB
合并到dev
都是快进合并(如下图所示),所以如果feaB
合并到dev
1}},feaA
也会自动合并到dev
。
A---B---C---D dev
\
E---F---G feaA
\
H---I---J feaB
其他分支结构建议。您可以根据您的详细需求参考以下两种结构:
dev
如果dev
是您的主要分支,并且所有功能都与其他功能不同,您应该从dev
创建所有功能分支,然后创建不同的PR以将它们合并到dev
分开。
E---F---G feaA
/
A---B---C---D dev
\
H---I---J feaB
如果您的要素分支彼此相关(因为feaB
需要feaA
分支中的某些代码/要素,如第一张图所示),您可以创建PR以合并feaB
首先进入feaA
。完成第一个PR后,创建一个PR以将feaA
合并到dev
。