Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git 检测预提交挂钩上的文件模式更改_Git_Githooks - Fatal编程技术网

Git 检测预提交挂钩上的文件模式更改

Git 检测预提交挂钩上的文件模式更改,git,githooks,Git,Githooks,我想知道是否有人在某些脚本上更改了文件模式,并显示警告,以确保这是有意的,而不是愚蠢的错误 目前,我尝试在预提交挂钩上执行类似操作: mode_changed=$(git diff --summary | grep "mode") #echo "mode change is $mode_changed" if ! [[ -z "$mode_changed" ]]; then echo "Warning Files Modes Changed" fi 如果文件没有进行提交,但只要调用git

我想知道是否有人在某些脚本上更改了文件模式,并显示警告,以确保这是有意的,而不是愚蠢的错误

目前,我尝试在预提交挂钩上执行类似操作:

mode_changed=$(git diff --summary | grep "mode")
#echo "mode change is $mode_changed"
if ! [[ -z "$mode_changed" ]]; then
  echo "Warning Files Modes Changed"
fi

如果文件没有进行提交,但只要调用git commit-a,那么前面的脚本就不再工作,变量模式中的返回值总是空的。还有其他方法吗?

要查看阶段性差异,请使用

git diff --summary --staged
(或
--cached
,是
--staged
的同义词)

您还可以稍微简化您的条件:

if [ -n "$mode_changed" ]; then

要查看阶段性差异,请使用

git diff --summary --staged
(或
--cached
,是
--staged
的同义词)

您还可以稍微简化您的条件:

if [ -n "$mode_changed" ]; then