我是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'的更改(或)还有什么其他最好的方法可以将"功能b"合并到"开发"中,从而使"文件A"拥有所有的更改?
假设您不会在合并/重构之间发生冲突,并且为了简单起见,您将在本地工作(没有提取/拉取/推入)。
基本上有两种处理方法。合并或重基。两者得到相同的结果。你的决定取决于你的工作策略。
你可以合并:
// 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'
提交C6
和C4'
的代码相同
如果你使用"合并"的策略,你可以在GUI(例如gitk)中看到你正在快速完成的不同特性。
如果你使用" rebase "策略,当你使用git log
如果您独自在FeatureB
分支上工作,则pull --rebase develop
是最佳实践:您在FeatureA
之上重播FeatureB
更改。(以及后面的git push --force
).
如果您是多个开发人员在FeatureB
上工作,那么必须在合并FeatureB
之前将develop
合并到FeatureB
。
在这两种情况下,想法是一样的:在合并回develop
之前,在本地测试两个功能的集成(pull或rebase)。
不要先合并到develop
,"希望"结果(在develop
上)是"足够好"。