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

Anonymous

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

Gitの使い方教える君 logo
Gitの使い方教える君

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

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

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

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

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

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

    bash
    1#!/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
  4. スクリプトに実行権限を与えます:chmod +x pre-commit

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