将PR彼此隔离并将分支彼此分开

时间:2017-07-07 20:18:48

标签: git version-control bitbucket

我有一个dev分支将我的功能分支合并到。实际情况。

假设我有2个功能分支:feaAfeaBfeaA建立在dev之上。 feaB建立在feaA之上,因此它具有feaA的所有提交

(对于最有可能与feaB无关的文件,feaB建立在feaA之上,原因是,例如,当我们想要对{{1}执行一些清理时},然后跳转到构建feaA而不是feaB并从checkout dev创建feaB分支。

  1. 如何隔离devfeaA以便feaB没有来自feaB的提交?

  2. 假设我已经创建了2个PR,其中1个来自feaA要合并到dev中,另一个来自feaA。我如何隔离2个PR,目标是让代码审阅者更容易阅读feaB的PR,而不是被feaB的PR更改所困扰,而两个PR仍然未决

  3. 热烈欢迎命令行答案。

    感谢。

2 个答案:

答案 0 :(得分:1)

rebase feaB丢弃属于feaA的更改:

git rebase --onto dev feaA feaB

答案 1 :(得分:1)

实际上两个拉取请求是相关的,您只需创建一个拉取请求即可将feaB合并到dev 。那是因为feaA合并到devfeaB合并到dev都是快进合并(如下图所示),所以如果feaB合并到dev 1}},feaA也会自动合并到dev

A---B---C---D   dev
             \
              E---F---G     feaA
                       \
                         H---I---J   feaB

其他分支结构建议。您可以根据您的详细需求参考以下两种结构:

选项1:从dev

创建所有要素分支

如果dev是您的主要分支,并且所有功能都与其他功能不同,您应该从dev创建所有功能分支,然后创建不同的PR以将它们合并到dev分开。

              E---F---G   feaA
             /
A---B---C---D    dev
             \
              H---I---J   feaB

选项2:递归合并功能分支

如果您的要素分支彼此相关(因为feaB需要feaA分支中的某些代码/要素,如第一张图所示),您可以创建PR以合并feaB首先进入feaA。完成第一个PR后,创建一个PR以将feaA合并到dev