如果在Jenkins合并前后有某些更改,则触发脚本

时间:2019-04-01 17:32:01

标签: bash git jenkins

如果存在对master分支的合并提交(其中更改了配置文件中的特定行),我试图让Jenkins触发特定的脚本。在master上检查合并提交很容易。问题是我不知道如何检查合并前后的差异。

我一直试图在脚本中使用if语句来使用git diff。我发现似乎最接近正确差异的最佳示例是:

git diff -G'changed_field=' HEAD^ HEAD -- config.cfg

由于很难从作业的控制台输出中确切地看到Jenkins中发生的事情,所以我能确定的是,由于我没有看到任何输出,因此没有选择更改。当我在本地分支上运行该差异以检查我对master的最后2次提交时,差异确实起作用。

1 个答案:

答案 0 :(得分:0)

如果HEAD是合并提交,则至少可以执行以下操作:

git show @
# or, more precisely:
git show @:/config.cfg

来自git show man page

  

对于提交,它显示日志消息和文本差异。
  它还以git diff-tree --cc产生的特殊格式显示合并提交。

这将显示此合并之前的内容以及添加/删除的内容。