問題が発生したのはいつですか?彼らが最初にファイルをコミットしたとき、または他の場所にプッシュされたとき?全員がプッシュするステージングリポジトリがあれば、大きなフアイルの変更されたrefをスキャンする更新フックを実装し、他のパーミッションのチェックなどを行うことができます。
非常ラフと準備例:
git --no-pager log --pretty=oneline --name-status $2..$3 -- | \
perl -MGit -lne 'if (/^[0-9a-f]{40}/) { ($rev, $message) = split(/\s+/, $_, 2) }
else { ($action, $file) = split(/\s+/, $_, 2); next unless $action eq "A";
$filesize = Git::command_oneline("cat-file", "-s", "$rev:$file");
print "$rev added $file ($filesize bytes)"; die "$file too big" if ($filesize > 1024*1024*1024) }';
(それは複数行を取るかもしれませんがちょうど示すことを行く、すべてが、Perlのワンライナーで行うことができます;))
呼び出さ
(refs/heads/master master〜2 masterのように、ref-name、old-rev、new-revです)$ GIT_DIR/hooks/updateが呼び出される方法で、これは追加されたファイルを表示し、が大きすぎます。
私は、あなたがこのようなことを警察に任せれば、それを行うための集中的なポイントが必要だと言います。あなたのチームが互いの変更を交換するだけだと信じているならば、巨大なバイナリファイルを追加することが悪いことを彼らが信じるべきです。
大きなファイルの不注意なコミットを防止する予定はありますか? –