如何使用Git更新我的项目版本号?

7
假设我有两个分支:developfeature。还假设我有一个名为VersionNumber的文件,其内容如下:

BUILD_NUMBER 1

我想使用Git钩子,在将feature合并到develop时,自动递增BUILD_NUMBER字段。
我考虑使用post-merge钩子执行以下过程:
  1. 检查要合并的分支是否为develop
  2. 通过将BUILD_NUMBER递增1来更新VersionNumber文件
  3. 添加已更新的文件:git add VersionNumber
  4. 修改提交:git commit --amend -C HEAD --no-verify
一切都很顺利,直到最后一个命令。 Git说我不能在合并过程中修改提交(这令我感到惊讶,因为我认为这是post-merge)。 有关如何使用post-merge或任何其他钩子执行此操作的建议吗?
1个回答

0

很遗憾,你的问题缺少代码示例。然而为了好玩,我能够重现这个问题。 确实,你不能修改合并提交中的内容(例如对文件进行更改)——这似乎是有道理的。实际上,你已经完成了合并,但是通过使用 amend,你试图回到合并提交并对其进行修改。

所以我认为你最好的机会是简单地添加一个版本升级的提交。

其他任何操作都会使它变得非常复杂,并且容易出现无法解决的情况,这将浪费你大量时间来修复你的提交和版本控制。我喜欢保持事物尽可能简单。但也许其他人可以想到更好的方法。

这是我写的 post-merge 钩子,如果有人感兴趣;它不检查分支:

perl -i -pe 's/(\d+)/1+$1/e' VersionNumber 
echo "bump version: `cat VersionNumber`"
git add VersionNumber
git commit --amend -m "bump version: `cat VersionNumber`"

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