Git 2.17(2018年第2四半期)では、をgit commitトリガーするコマンドのリストに追加する必要がありますgit gc --auto。
実際、Gitが始まって以来そうだったはずです。
ÆvarArnfjörðBjarmason ( )によるcommit 095c741(2018年2月28日)を参照してください。(濱野純雄による合併---コミット9bb8eb0、2018年3月8日)avar
gitster
commit:フックgit gc --autoの直前で実行post-commit
の動作をgit-commit、
d4bb43e( "Invoke" git gc --auto"from commit、、、および
。" merge、2007-09-05、Git v1.5.4-rc0)での動作に変更します。amrebasegit-commit.sh
その後まもなく、f5bbc32( "Port git committo C。"、2007-11-08、Git v1.5.4-rc0)でCに移植されたとき、" git gc --auto"の呼び出しはなくなりました。
その意図しない回帰以降、、、、、およびgit gc --autoに対してのみ実行されgit-amまし
git-mergeた。ローカルで大量のデータを処理し、実行されない
スクリプトを作成することは可能でした。git-fetchgit-receive-pack
git commitgc
生成されたゾーンファイルの変更をローカルでコミットしていたそのようなリポジトリの1つは、毎日のcronジョブが ""に追加される前に、最大60GBのサイズに成長し、git gc1GB未満になりました。これにより、そのようなケースは介入なしで機能します。
リポジトリが永久に大きくなるような病理学的なケースを修正することは、「」を呼び出すのに数ミリ秒を費やす価値のあるトレードオフだと思いますgit gc --auto(それが何もしない一般的なケースでは)。
このリストの別の図は、Git 2.27(2020年第2四半期)で見つけることができます。これは、「 」オプションを指定して実行すると、「 」を「 」に渡すように「 am」、「commit」、「」、「」mergeを教えます。rebase--quiet--quietgc --auto
濱野純夫()によるコミット7c3e9e8、コミット850b6ed(2020年5月6日)を参照してください。( Junio C Hamanoによってマージされました---コミット3af459e 、2020年5月13日)gitster
gitster
auto-gcgit fetch:「 」から再利用可能なヘルパーを抽出します
レビュー投稿者:Taylor Blau
1991006c (:convert to struct 、2014-08-16、Git v2.1.1)に戻って、""オプションを""に渡すように""を教えました。 fetchargv_gc_autoargv_arraygit fetch --quiet--quietgc --auto
ただし、この問題は「フェッチ」に限定されません。
$ git grep -e 'gc.*--auto' \*.c
am「 」、「commit」、「」、merge「 」のヒットを検出します。これらのコマンドは、それら自体が静かであると指示された場合、 「」を「 」にrebase渡しません。--quietgc --auto
run_auto_gc()準備手順として、呼び出し元がブール値 " quiet"を渡し、ヘルパーを使用して ""の修正をやり直すことができる、ヘルパー関数を導入しましょうgit fetch。