2
我正在编写一个Git预提交钩子客户端脚本,我想通过提交的文件进行筛选,并使用已删除的文件执行某些操作。检查预提交钩子shell脚本中的git状态
我发现用下面的代码可以循环遍历提交中包含的所有文件。
#!/bin/sh
for file in $(exec git diff-index --cached --name-only HEAD)
do
echo $file
done
要找到已删除的文件,我相信我可以用git status --porcelain <file>
,因为它显示的第一个字符作为D
当文件被删除。
所以我需要的是帮助制定语法来检查git status --porcelain <file>
的输出中的第一个字符是否为D
。
#!/bin/sh
for file in $(exec git diff-index --cached --name-only HEAD)
do
# This line doesn't work but it's the best I've came up with.
if git status --porcelain $lessFile == *"D"*; then
echo "$file was deleted"
fi
done
或让我知道,如果我在这里的基础。谢谢。
感谢您的回复。你介意在你的示例中包含完整的上下文吗?不知道有关shell脚本的任何事情,我很难将它们放在一起。 –
只使用第二个。它是完整的和完整的 –
太棒了,我第一次尝试它时复制了错误。谢谢你的帮助。 –