4

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

4

2 回答 2

3

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

谷歌搜索出现了这个:http ://cd34.com/blog/programming/using-git-to-generate-an-automatic-version-number/

编辑:或者,您可以简单地标记版本号并让 git 完全忽略它。您是否在部署过程中将令牌替换为某个派生版本号 - 增量或基于 git SHA1 或其他数字。

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

于 2013-04-03T00:53:55.620 回答
2

不,合并时您无法避免这种情况 - 对同一文件中同一行的两次更改最终会发生冲突。

您是否考虑过使用cherry-picks 来避免选择版本凹凸?另一种选择不是对版本进行硬编码,而是从 git 自动派生它(例如,发布分支根据提交次数获取数字,而修补程序分支根据分支名称获取后缀)

于 2013-04-02T20:11:24.360 回答