我的开发人员团队和我开始经常运行一些问题而不涉及git。我们都在同一个名为mysql_trunk
的分支上工作。我们经常遇到推动冲突和合并冲突。
我们很乐意使用git,但我们觉得这里遗漏了一些东西。必须有一种更有效的方法来处理大型代码库(1.5mil代码行),多个开发人员同时为同一个repo做出贡献。这似乎是一个相当直接的问题,但我们可以真正使用一些帮助来找到一个解决方案,以防止我们不断出现推动冲突,合并冲突,分离HEAD冲突。
非常感谢任何建议和/或阅读材料。
答案 0 :(得分:6)
鉴于Linux内核使用(并开发)git
,1.5MLOC似乎不是一个特别大的代码库(内核大约是其大10倍)。您的并发开发人员数量可能也比Linux小。
所以问题是,为什么你首先要解决这些冲突?
无论如何,有许多方法可以避免合并冲突。这里有一些(灵感来自4 Simple Tricks to Avoid Merge Conflicts )
经常提交,做最小的原子提交,经常提交。 (不要让代码文件的重新缩进破坏你的错误修正提交)
确保使用相同的编码约定(尤其是空格)
创建功能分支,但要使它们短暂并尽快合并(分支与主干分开的越少,冲突的可能性就越小)
以模块化方式组织代码:如果处理不同/不相关任务的开发人员需要更改相同的代码行,那么您的代码组织就会出现问题 - 并且VCS无法提供帮助你。
沟通(如果您的代码已经是模块化的,那么请确保使用相同代码的人一起工作而不是相互对抗;他们应该知道代码的哪些部分将在不久的将来发生变化,所以他们可以阻止自己的变化)
经常提交
确保您只跟踪人工编辑的文件(没有二进制文件,没有文本构建工件(例如autotools文件)
更频繁地提交