我有这样的情况:
(master)
A - B - E - F
\
C - D
(feature-x)
我是否应该将master合并到feature-x中,如果我需要将关键修复E和F放入feature-x分支继续开发,我打算合并回master?
当功能分支可能会或可能不会与其他开发人员共享时,重复将master合并到功能分支然后将功能重新转换为master会有什么不利之处吗?
答案 0 :(得分:7)
据我了解,将master合并到您的功能分支并不算错误。 @larsks回答提供了一些关于如何使用rebasing的好信息,这是一个选项。但请务必遵循黄金法则“不要重新存档存储库外的提交”(see Perils of rebasing)。
澄清:'存储库外存在的提交'将是公共(推送)提交。
如果你想知道是否反对,比合并更好,反之亦然,我建议你回顾一下:'Rebase vs. Merge'。文章指出,答案取决于您和您的团队认为最适合您项目的内容。
对于较大的项目,我喜欢历史记录以准确显示发生的事情。所以在我工作的地方,我们通常会将master合并到我们的功能分支中,以使它们与最新的代码保持同步。虽然,我不一定认为这是每个人的全球最佳实践。但是,这也不算错误。
其他一些人喜欢拥有非常干净的历史记录,因此对于他们来说,变调可能被认为是更好的选择。
答案 1 :(得分:5)
处理这种情况的最常见工作流程可能是rebase
主分支上的功能分支:
$ git checkout feature-x
$ git rebase master
这会给你:
(master)
A - B - E - F
\
C - D
(feature-x)