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