与Git一起使用大型代码库和多个开发人员进行多次提交

时间:2017-05-03 20:39:17

标签: git merge-conflict-resolution

我的开发人员团队和我开始经常运行一些问题而不涉及git。我们都在同一个名为mysql_trunk的分支上工作。我们经常遇到推动冲突和合并冲突。

我们很乐意使用git,但我们觉得这里遗漏了一些东西。必须有一种更有效的方法来处理大型代码库(1.5mil代码行),多个开发人员同时为同一个repo做出贡献。这似乎是一个相当直接的问题,但我们可以真正使用一些帮助来找到一个解决方案,以防止我们不断出现推动冲突,合并冲突,分离HEAD冲突。

非常感谢任何建议和/或阅读材料。

1 个答案:

答案 0 :(得分:6)

鉴于Linux内核使用(并开发)git,1.5MLOC似乎不是一个特别大的代码库(内核大约是其大10倍)。您的并发开发人员数量可能也比Linux小。

所以问题是,为什么你首先要解决这些冲突?

无论如何,有许多方法可以避免合并冲突。这里有一些(灵感来自4 Simple Tricks to Avoid Merge Conflicts

  • 经常提交,做最小的原子提交,经常提交。 (不要让代码文件的重新缩进破坏你的错误修正提交)

  • 确保使用相同的编码约定(尤其是空格)

  • 创建功能分支,但要使它们短暂并尽快合并(分支与主干分开的越少,冲突的可能性就越小)

  • 以模块化方式组织代码:如果处理不同/不相关任务的开发人员需要更改相同的代码行,那么您的代码组织就会出现问题 - 并且VCS无法提供帮助你。

  • 沟通(如果您的代码已经是模块化的,那么请确保使用相同代码的人一起工作而不是相互对抗;他们应该知道代码的哪些部分将在不久的将来发生变化,所以他们可以阻止自己的变化)

  • 经常提交

  • 确保您只跟踪人工编辑的文件(没有二进制文件,没有文本构建工件(例如autotools文件)

  • 更频繁地提交