Git pre-commitフッククライアントスクリプトを作成しています。コミットされたファイルをフィルタリングして、削除されたファイルで何かを実行したいと思います。
以下を使用すると、コミットに含まれるすべてのファイルを次のようにループできることがわかりました。
#!/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
または、私がここで基地から離れているかどうかを知らせてください。ありがとう。