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

Cha*_* L. 2 git merge-conflict-resolution

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

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

任何建议和/或阅读材料将不胜感激.

uml*_*ute 6

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

所以问题是,为什么你首先得到这些冲突?

无论如何,有许多方法可以避免合并冲突.这里有一些(受到4个避免合并冲突的简单技巧的启发)

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

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

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

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

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

  • 经常提交

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

  • 经常提交