下面是我的预提交的git hoook条件始终返回false
#!/bin/bash
....
# if git diff -U0 "$FILE_PATH" | grep -iq 'todo'; # Double quoting $FILE_PATH doesnt' change anything
if git diff -U0 $FILE_PATH | grep -iq 'todo';
then
echo $FILE_PATH ' -> Contains TODO'
exit 1
else
echo 'nooooooooooooooooooooooooooooooooooo'
fi
我总是得到noooooooooooooooooooo
消息,但是,下面的命令,直接想我的终端上,效果很好:
git diff -U0 my/file/path.php | grep -iq 'todo' && echo 'true' || echo 'false'
输出
true
UPDATE
当运行bash .git/hooks/pre-commit
它的作品,很奇怪!
FYI
我不知道这是否是一个重要的信息,但git的/挂钩/预提交的是一个symbolik环节最有可能
双引号'$ FILE_PATH'然后再试一次... – Jahid
@Jahid不会改变结果,我总是在从我的终端尝试时得到'true' – smarber
你是如何运行脚本和谁? 'git diff -U0 $ FILE_PATH | grep -i'todo''在脚本中自行运行时返回?那么'git diff -U0 $ FILE_PATH'呢? – 123