如何最小化git合并冲突?

blu*_*ray 6 git shell version-control

我们公司使用git来跟踪文档/代码更改,几个人进行更改并将其推送到中央存储库。一般来说,对于git或命令行工具,大多数人还是新手。对于他们,我们有脚本可以在进行更改后更新或发布其本地存储库。

是否有任何工作流程能更好地处理此类情况,以最大程度地减少必须由git经验丰富的人员解决的合并冲突?

Yuv*_*dam 6

Git 不能替代适当的开发实践。它不会为您编写更好的代码。

如果两个开发人员接触完全相同的代码,git 无法使他们的工作更轻松,如果是合并冲突,无论您是否在分支上,它都会是一个。

短期解决方案:使用适当的本地和远程分支来封装不同功能的工作。使用分支差异(或 github 拉取请求)来审查功能集并帮助解决差异和冲突。

长期:修复您的代码,使其适应您的团队,反之亦然,并使用适当的开发实践。


Von*_*onC 6

合并冲突的第一个原因是每次合并之间时间
在每次合并之间等待的时间越长,就越肯定会看到合并冲突。

您可以通过选择合并工作流(例如git flow)来最小化这种情况,该工作将提倡每个功能的分支,并促进任务的隔离。
但是只要涉及一组通用文件(在两个不同的开发中),您最终就会发生合并冲突,尤其是如果您等待太长时间。

因此,对于分布式VCS,学习定期发布(推/拉),并在合并之前学习变基

这不仅会减少冲突的数量,还会减少语义冲突的数量:这些合并似乎是自动的(没有冲突),但会产生不正确的代码。
请参阅“更好、更简单的‘语义冲突’示例? ”。