在大型项目中使用git的最佳实践

3

摘要

我目前正在与多个团队共同开发的大型项目上工作,总共有50多名开发人员。我们试图利用已知的各种方法来使交付过程流畅和可预测(如Scrum、代码冻结、计划会议、回顾等)。但最终结果却往往是一团糟。最近,在我们的产品演示之前,我们遇到了巨大的合并/部署问题,这不仅是由于管理层和客户的压力,也是由于我们的开发工作组织方式。

问题

我们使用GitLab中的git,并使用pull requests,在将更改合并到生产分支之前尝试审查它们。但是在接近截止日期的半天时间内(4小时),开发人员往往会提交超过 50 devs * 0.5 day = 25 dev days 的工作量,导致我们的最终分支极其不稳定。问题在于,大多数分支在隔离状态下是稳定的,但在合并时会引起问题。增量合并使问题变得更糟,因为开发人员正在团队分支中开发大型功能模块,并最终将这些大型团队分支合并到生产分支中。最终,很难针对特定的次要问题进行具体的回滚,因为其上面有大量的代码。

问题

我正在寻找一种方法,使我们在使用git时的交付过程更加可预测和透明。其他大型项目如何组织他们的工作以达到上述目的。

我不确定从哪里开始,也许有关于这个主题的文献资料,或者您可以分享自己的最佳实践。任何关于这个主题的信息都将不胜感激。

提前感谢您!

2个回答

4

好的,问题出在合并分支上。基本上在任何开发人员将分支推送到原始版本之前,开发人员都应该将分支从最终版本中进行变基。操作如下:

git rebase origin/final_branch_name

这个命令会将当前分支与最终分支进行变基,如果有一个以上的开发人员更改了同一处代码,就会出现冲突,所以您需要解决这些冲突,然后将分支推送到原始版本,并进行拉取请求。 这个过程可以避免Git仪表板上的冲突,让开发人员更容易地合并分支。


你能否添加一个Git操作,对于每个提交,在所有具有拉取请求到final_branch_name的分支上执行此变基操作? - Peter Mølgaard Pallesen

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接