1

リモートリポジトリで gc コマンドを自動的に実行することを git が拒否しているようです。約 1 か月で、そのリポジトリは .pack ファイルのために約 6GB に拡大します。これは変数 gc.auto に問題があると思います - リモートリポジトリでこの変数を設定するにはどうすればよいですか、またはそのリポジトリで手動で git-gc コマンドを実行するにはどうすればよいですか?

4

2 に答える 2

0

注: リポジトリにパック ファイルが 1 つしかない場合、 は で再パックしないgit gcでください。それでもそうでした。 つまり、Git 2.10 (2016 年第 3 四半期) まではそうでした。git config gc.autoPackLimit 1

Eric Wong ( )によるcommit 5f4e3bf (2016 年 6 月 25 日)を参照してください。( 2016 年 7 月 13 日コミット 97865e8Junio C Hamanoによってマージされました)ele828
gitster

gc: off-by-one エラーを修正gc.autoPackLimit

これはドキュメントと一致し、 " " 呼び出しgc.autoPackLimit=1のたびに再パックを試みることなく単一のパックを維持できます。git gc --auto

" gc.autoPackLimit" が 1 に設定されている場合、パックが 1 つしかないときに再パックをトリガーするべきではありませんが、コードのカウントが不十分であり、再パックがトリガーされました。

于 2016-07-18T11:42:27.943 に答える
0

リモートリポジトリがホストされているボックスにログインしてから、単に入力する必要があります

git gc

コマンドラインで。

についてgc.autoドキュメントは言う:

gc.auto
リポジトリにこれより多くのルース オブジェクトがある場合、git gc --auto はそれらをパックします。一部の磁器コマンドは、このコマンドを使用して軽量のガベージ コレクションを時々実行します。デフォルト値は 6700 です。これを 0 に設定すると無効になります。

.packただし、ファイルについて話している。それを扱う別のオプションがあるようです:

gc.autopacklimit
リポジトリに *.keep ファイルでマークされていないパックがこれより多くある場合、git gc --auto はそれらを 1 つの大きなパックに統合します。デフォルト値は 50 です。これを 0 に設定すると無効になります。

gc.autopacklimitサイズではなく、パックの数で機能することに注意してください。たぶん、これらを使用して動作を微調整できますgc...

于 2012-09-19T13:31:57.067 に答える