我想知道是否有人在某些脚本上更改了文件模式,并显示警告以确保它是有意的,而不是一个愚蠢的错误。
当前,我尝试在预提交钩子上执行以下操作:
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中的返回值始终为空。还有另一种方法吗?
答案 0 :(得分:2)
要查看分阶段的差异,请使用
git diff --summary --staged
(或--cached
,它是--staged
的同义词)。
您还可以稍微简化一下条件:
if [ -n "$mode_changed" ]; then