Gitファイルサイズ警告フック
Anonymous
git addしようとした時点でファイルサイズの警告を出してくれるようにする方法はないでしょうか?
Gitの使い方教える君
Gitには、特定のファイルサイズを超えた場合に警告を出す組み込みの機能はありませんが、Gitのフックを使用してこのような機能を実装することができます。Gitフックは、特定のGitコマンド(例えばgit commit
やgit push
)の前後にカスタムスクリプトを実行する機能です。
ファイルサイズの警告を実装するには、pre-commit
フックを使用します。これは、コミットが完了する前に実行されるスクリプトです。以下に、基本的なステップを説明します。
-
リポジトリのルートにある
.git/hooks/
ディレクトリに移動します。 -
pre-commit
という名前の新しいスクリプトファイルを作成します(もし既に存在する場合は、それを編集します)。 -
スクリプトに、ステージングされたファイルのサイズをチェックし、指定したサイズを超えている場合に警告を出すコードを記述します。
例えば、以下のようなシェルスクリプトが考えられます:
bash1#!/bin/sh 2 3# 許容する最大ファイルサイズ(例: 1MB) 4MAX_SIZE=1000000 5 6# ステージングされたファイルのリストを取得 7files=$(git diff --cached --name-only --diff-filter=ACM) 8 9# 各ファイルのサイズをチェック 10for file in $files; do 11 if [ -f $file ]; then 12 size=$(wc -c <"$file") 13 if [ $size -gt $MAX_SIZE ]; then 14 echo "警告: ファイル '$file' は ${MAX_SIZE}バイトを超えています。" 15 exit 1 16 fi 17 fi 18done 19 20# すべてのチェックを通過 21exit 0
-
スクリプトに実行権限を与えます:
chmod +x pre-commit
これで、git add
後にgit commit
を実行すると、スクリプトが実行され、指定されたサイズを超えるファイルがある場合に警告を出してくれます。ただし、このスクリプトはあくまでコミット時のチェックであり、git add
の時点で警告を出すわけではありませんので、その点はご留意ください。