我希望能够知道是否有人在某些脚本上更改了文件模式并显示警告以确保它是有意的而不是一个愚蠢的错误。
目前我尝试在我的预提交钩子上做这样的事情:
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,则前一个脚本不再有效,变量mode_changed中的返回值始终为空。还有另一种方法吗?
要查看分阶段的差异,请使用
git diff --summary --staged
(或--cached
,这是--staged
的同义词)。
您还可以稍微简化一下您的情况:
if [ -n "$mode_changed" ]; then