Git CI - 如何检查特定文件在新版本上是否发生了更改?

Moj*_*imi 3 git continuous-integration

我正在尝试设置一个简单的 Git CI。

但我不想每次都重建,而是希望能够检查特定文件(比方说requirements.txt)在上一个版本/提交和当前版本/提交之间是否发生了任何更改。

有没有 git 命令可以做到这一点?

小智 5

git diff命令有一个限制路径的签名,所以你可以这样做:

git diff HEAD HEAD~1 --no-patch --exit-code requirements.txt
Run Code Online (Sandbox Code Playgroud)

如果文件在最近提交中发生更改,则返回码将为 1,否则返回码为 0。然后您可以像这样访问返回代码(在 bash 中):

echo $?
Run Code Online (Sandbox Code Playgroud)

讨论

  • 两个参数 HEAD 和 HEAD~1 是当前分支的提示(您最新的提交)及其后面的提交。
  • --no-patch 选项抑制实际的 diff 输出。
  • --exit-code 参数导致存在差异时返回代码为 1,否则返回代码为 0。