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

alg*_*uru 7 git automation version-numbering githooks

说我有两个分支:developfeature.

假设我还有一个名为的文件VersionNumber,其中包含以下内容:

BUILD_NUMBER 1

我想用Git的挂钩,这样,当我合并featuredevelop,在BUILD_NUMBER现场就会自动增加.

我想到了使用post-merge钩子的以下过程:

  1. 检查正在合并的分支是 develop
  2. VersionNumber通过递增BUILD_NUMBER1来更新文件
  3. 添加更新的文件: git add VersionNumber
  4. 修改提交: git commit --amend -C HEAD --no-verify

一切正常,直到最后的命令.Git说我不能在合并过程中修改提交(这对我来说很惊讶,因为我认为这是post-merge).

关于我如何做到这一点的任何建议(使用post-merge或任何其他钩子)?

xor*_*xor 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`"
Run Code Online (Sandbox Code Playgroud)