如何处理Git持续集成合并冲突

时间:2013-06-10 22:13:17

标签: git github continuous-integration

我们正在概述和准备Git集成,我们正在实现与以下链接类似的设计。

http://nvie.com/posts/a-successful-git-branching-model/

我们遇到的问题是当你提交并推送到'develop'分支或持续集成分支时,因为我们有多个团队在不同的分支上工作,你必然会遇到合并冲突,因为你永远不会拉下来从推动之前的'发展'。对于团队来说,尝试解决他们没有太多知识的事情似乎不是最好的做法。

我们的一个想法是在'develop'分支上执行pull请求,并有一个专门解决这些问题的团队。

我们缺少任何选择吗?

2 个答案:

答案 0 :(得分:2)

功能分支背后的想法是它们应该只包含一个小的原子变化。理论上,这种变化不应该因为其性质而导致合并冲突。

如果某个功能引入合并冲突,我会更倾向于检查您认为是“功能”的内容。

我经历过这种介绍的方式是一个特征与特定任务有关(在时间上)应该持续不超过一天或两天。

鉴于这个短时间尺度,在周期中不太可能出现合并冲突,但是如果他们这样做,例如当你有多个团队在代码库的同一区域工作时,需要一定程度的通信确保以正确的方式解决冲突。

您可以应用不同的模型来帮助您管理冲突解决方案。我们致力于水平切片模型,如果多个团队需要在代码库的特定区域进行更改,则将其分配给其项目包含整个给定模块的团队。您的公司可能对垂直切片模型更感兴趣,在这种情况下,您不太可能遇到跨团队的合并冲突。

没有多少工具可以打破对话以解决冲突。如果您知道您的更改会影响其他人正在处理的文件,那么最好遵循的模式就是对话。

在某些情况下,这并不理想,企业可能会有其他想法,但是只要每个开发人员保持他们的功能分支与发展保持同步,那么冲突的倾向就会大大减少。

答案 1 :(得分:0)

如果你:

  1. 每次推动前先拉,
  2. 使用pre-tested commit strategy
  3. 这永远不会成为问题。您的合并冲突将始终发生在可以手动处理它们的开发机器上。