Gitの使い方教える君

Gitファイルサイズ警告フック

Gitの使い方教える君

원본 공유 채팅 열기

사용자

git addしようとした時点でファイルサイズの警告を出してくれるようにする方法はないでしょうか?

Gitの使い方教える君

Gitには、特定のファイルサイズを超えた場合に警告を出す組み込みの機能はありませんが、Gitのフックを使用してこのような機能を実装することができます。Gitフックは、特定のGitコマンド(例えばgit commitやgit push)の前後にカスタムスクリプトを実行する機能です。

ファイルサイズの警告を実装するには、pre-commitフックを使用します。これは、コミットが完了する前に実行されるスクリプトです。以下に、基本的なステップを説明します。

  1. リポジトリのルートにある.git/hooks/ディレクトリに移動します。

  2. pre-commitという名前の新しいスクリプトファイルを作成します(もし既に存在する場合は、それを編集します)。

  3. スクリプトに、ステージングされたファイルのサイズをチェックし、指定したサイズを超えている場合に警告を出すコードを記述します。

    例えば、以下のようなシェルスクリプトが考えられます:

    #!/bin/sh
    
    # 許容する最大ファイルサイズ(例: 1MB)
    MAX_SIZE=1000000
    
    # ステージングされたファイルのリストを取得
    files=$(git diff --cached --name-only --diff-filter=ACM)
    
    # 各ファイルのサイズをチェック
    for file in $files; do
        if [ -f $file ]; then
            size=$(wc -c <"$file")
            if [ $size -gt $MAX_SIZE ]; then
                echo "警告: ファイル '$file' は ${MAX_SIZE}バイトを超えています。"
                exit 1
            fi
        fi
    done
    
    # すべてのチェックを通過
    exit 0
    
  4. スクリプトに実行権限を与えます:chmod +x pre-commit

これで、git add後にgit commitを実行すると、スクリプトが実行され、指定されたサイズを超えるファイルがある場合に警告を出してくれます。ただし、このスクリプトはあくまでコミット時のチェックであり、git addの時点で警告を出すわけではありませんので、その点はご留意ください。