如何在Git中将特性分支合并到develop分支?

7

我是Git的新手,有一个简单的问题。

虽然在这个论坛上已经有很多次问过这个问题,但我想将我的问题限制在以下情况下

1)  Feature A  (Files A, B and C were modified) cut from 'develop'
2)  Feature B  (Files A and D were modified) cut from 'develop'

功能A已成功合并到“develop”分支中

现在的问题是,我们应该采取什么方法将“Feature B”合并到“develop”分支中?

我们应该拉取最新版本的“develop”,并合并“feature b”的更改吗?或者还有其他更好的方法来将“feature b”合并到“develop”分支,以使“文件A”包含所有更改?


首先应该进行同步或拉取操作,然后再合并功能B。 - cafebabe1991
我的个人偏好是将B rebase到当前的develop分支,然后再进行合并。但这只是我的个人偏好。 - slebetman
2个回答

13

假设您不会在合并/变基中发生冲突,且为了简化工作,您只在本地工作(没有获取/拉取/推送)。

基本上有两种方法可以继续。合并或变基。两者都能得到相同的结果。您可以根据自己的工作策略来决定选择哪种方法。

您可以进行合并:

                     //      C3-C4
git checkout develop //     /     \
git merge featureB   // C1-C2--C5--C6

或者你可以变基:

                       //      C3-C4
git checkout featureB  //     /
git rebase develop     // C1-C2--C5--C3'--C4'

提交 C6C4' 中的代码是相同的。

如果您使用“合并”的策略,您可以使用GUI(例如gitk)快速查看您正在执行的不同功能。

如果您使用“变基”的策略,您可以更轻松地跟踪项目的演变,当您使用诸如git log的命令时。


8
如果您是独自在FeatureB分支上工作,那么最佳实践是执行pull --rebase develop:您正在将FeatureB更改回放到FeatureA之上。(然后执行git push --force)。
如果有多个开发人员在FeatureB上工作,则必须先将develop合并到FeatureB,然后再将FeatureB合并回develop
在两种情况下,思路都是相同的:在合并回develop之前,在本地测试两个功能的集成(拉取或回放)。
不要首先将其合并到develop中,希望结果(在develop上)足够好。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接