Git(ローカル)リポジトリに100MBを超えるファイルをコミットしようとした際に、自動的にエラーメッセージを表示し、コミットをキャンセルする拡張機能です。
この拡張機能は、該当するリポジトリのフォルダをVSCodeで開いた際に自動的に設定されます。
これにより、誤って100Mを超える巨大なファイルをコミットしてしまうことを防ぎ、
「Github(サーバー)へのプッシュ時に巨大ファイルをコミットしていたことに気づき一大事」といったことを解消できます。
拡張機能をインストールするだけで利用可能となります。
とても単純で
#!/bin/sh
toplevel=$(git rev-parse --show-toplevel)
if [ -z "$toplevel" ]; then
exit 0
fi
if [ -f "$toplevel/.git/hooks/post-checkout" ] &&
[ -f "$toplevel/.git/hooks/post-commit" ] &&
[ -f "$toplevel/.git/hooks/post-merge" ] &&
[ -f "$toplevel/.git/hooks/pre-push" ]; then
exit 0
fi
limit=104857600 # 100MB in bytes
git diff --cached --name-only | while IFS= read -r file; do
file_size=$(stat -c %s "$file" 2>/dev/null)
if [ "$file_size" -gt "$limit" ]; then
echo "Error: Cannot commit a file larger than 100 MB. Abort commit."
exit 1
fi
done
これにより、該当のgitリポジトリは、コミットする前に、コミットファイル群中に「100M以上」のファイルがあれば全体をキャンセルします。
ただし、lfsリポジトリであると判断されると、この制限は適用されません。
github100mbyteslimithook で公開されています。
MITライセンス
github で公開されています。