Git 为什么在碰撞版本时会出现合并冲突?

Git 为什么在碰撞版本时会出现合并冲突?,git,version-control,Git,Version Control,我正在做一个PHP项目,使用git/github来维护我的项目。我遵循一个简单的分支模型(master、dev、hotfix、feature、release)。我的应用程序包含一个配置文件(config.php),我在其中定义了版本号。最近,我不得不做一个修补程序。我从主程序分支了热修复程序分支,进行了更改,然后升级了版本(例如:1.1.2到1.1.3)。当我将修补程序合并回主程序时,我没有任何问题。当我将修补程序分支合并到dev中时,我与版本号行上的配置文件发生了合并冲突。在我的开发分支中,我

我正在做一个PHP项目,使用git/github来维护我的项目。我遵循一个简单的分支模型(master、dev、hotfix、feature、release)。我的应用程序包含一个配置文件(config.php),我在其中定义了版本号。最近,我不得不做一个修补程序。我从主程序分支了热修复程序分支,进行了更改,然后升级了版本(例如:1.1.2到1.1.3)。当我将修补程序合并回主程序时,我没有任何问题。当我将修补程序分支合并到dev中时,我与版本号行上的配置文件发生了合并冲突。在我的开发分支中,我有一个不同的版本号,所以我假设这就是导致冲突的原因。我今后如何避免这种情况?我是否需要在不同的时间和/或分支升级版本?

否合并时无法避免此问题-对同一文件中同一行的两个更改最终会发生冲突

您是否考虑过使用樱桃选择来避免选择版本凹凸?另一种选择是不硬编码版本,而是从git自动派生版本(例如,发布分支根据提交数量获取数字,热修复分支根据分支名称获取后缀)

您可以使用“我们的”或“他们的”策略告诉got如何自行解决冲突,但我不认为你可以在特定的线路上使用这些策略。您可能希望避免开发人员必须更新版本号,而是在git钩子上更新版本号

谷歌搜索发现:

编辑: 或者,您可以简单地标记版本号,让git完全忽略它。部署过程是否使用一些派生版本号替换令牌—增量版本号、基于git SHA1的版本号或其他版本号


有趣的话题,这是我实际上需要尽快为我的团队做的事情。

所以我想做一些类似于
git descripe--all>version.txt的事情会更容易,只需读取文件内容而不是硬编码版本?我想如果我继续按我的方式做,我会继续有这个问题。是的,很多人也会这样做。