ファイルサイズが大きいゲームプロジェクト開発においてGit LFSのファイルサイズ制限対策でCommit時に弾きたいため。
ChatGPTで適当に生成して動作確認済み。
vi .git/hooks/pre-commit
#!/bin/sh
# Git LFS limit: 100MB
LIMIT=$((100 * 1024 * 1024))
# ステージされたファイルを列挙
files=$(git diff --cached --name-only --diff-filter=ACM)
for f in $files; do
# 実ファイルが存在するか
[ -f "$f" ] || continue
size=$(wc -c < "$f")
if [ "$size" -gt "$LIMIT" ]; then
mb=$(awk "BEGIN { printf \"%.1f\", $size/1024/1024 }")
echo "Error: '$f' is ${mb}MB, exceeds the 100MB Git LFS limit."
exit 1
fi
done
exit 0
chmod +x .git/hooks/pre-commit