Git:如何检查CI运行的diff是否在src(!src/**)外修改了文件



使用git,如何在Circle CI作业中了解我们正在构建的差异是否包括src之外的更改。

如果只对src进行更改,我想终止CI。

我可以使用哪个命令来检查当前CI中是否有src以外的内容发生了更改?

尝试:

git diff --name-only <something> HEAD | grep -v "^src/"

  • 检查是否有一些行
  • 或检查最终返回代码(成功=src/之外有一些更改,失败=src/之外没有更改(

要将当前提交与从master分叉的点进行比较,请使用:

git diff --name-only master...HEAD    # 3 dots

[更新]

需要注意的是:git diff master...HEAD意味着您在本地克隆上拥有所有回购的历史记录(或者至少:在当前分支和master分支中有足够的提交,可以到达这些分支的分叉点(。

如果您激活了一些";稀疏结账";或";浅克隆";选项,该选项显式地仅在本地获取最后一次提交。

您可以明确地";深化";分支机构的历史:

git fetch --deepen=1000 origin master
git fetch --deepen=1000 origin [active branch]

如果你不在本地查看master,你可能不得不与origin/master进行比较:

git diff --name-only origin/master...HEAD

如果您有浅克隆问题,您可能还想查看git服务器的API。

例如:使用github的API,如果您有pull请求的标识符,则可以使用Pulls:list文件来获取该pull请求修改的文件列表。

最新更新