7

假设我有两个分支:developfeature.

假设我还有一个名为的文件VersionNumber,其内容如下:

BUILD_NUMBER 1 个

我想使用 Git 钩子,这样当我合并feature到时develop,该BUILD_NUMBER字段会自动递增。

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

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

在最终命令之前一切正常。Git 说我无法在合并过程中修改提交(这让我感到惊讶,因为我认为这是post-merge)。

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

4

1 回答 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`"
于 2018-05-28T21:53:14.963 回答