Git は、Linux カーネルの開発を処理するためにLinus Torvaldsによって明示的に作成されました。これには、プロジェクトに貢献しているユーザーの数と、それによって作成されたコミットの量が考慮されます。
このようなサイズのプロジェクトが簡単に維持できるかどうかは、ワークフローに大きく依存します。誰もが使用するいくつかの開発ブランチのみを使用する場合、複数のマージ競合が発生する可能性があります。一方、開発が (feature) ブランチで高度に分離されている場合、そのようなブランチでの作業が完了し、作業がマージされるときにメインラインに触れるだけでよいため、メンテナンスがはるかに簡単になります。多くの場合、まさにそれに集中するために、特別なインテグレーターの役割を持つ人々がいます。Linux カーネルの場合、副官が開発者からコミットを収集 (および検証) し、それを独裁者(Linus 自身) に提示します。
全体としては、Git 内で巨大なプロジェクトを作成することを妨げるものは何もありません。状況によっては、可能であれば分割する価値があるかもしれません (多数の小さなリポジトリを持つAndroid の OSPと比較してください)。
リポジトリのサイズが大きくても、最初のクローン作成プロセス以外のワークフローには影響しないことに注意してください。途方もなく大きな作業ディレクトリ (ソース管理システムに影響を与える) がない限り、 Git の通常の速度には影響しません。すべてのコマンドはローカルで実行さgit status
れ、作業ディレクトリ、インデックス、および現在のバージョンを確認するだけで済みます。つまり、履歴が長くても変更されません。Git のデータ モデルは有向非巡回グラフであるため、使用するアクセサー (ブランチ ポインター、HEAD など) を超えるグラフの大きさに関係なく、必要なもののほとんどがすぐに得られます。
そうは言っても、リポジトリの 600 MB は本当に多すぎます。多くのバイナリ ファイルが含まれていると思われますが、これは最善の方法ではない可能性があります。Git はバイナリ ファイルをテキスト ファイルと同じ方法で処理しますが、圧縮 Git は処理しません。また、すべての Git オブジェクトに適用されるデフォルトの gzip 圧縮は、多くの場合、バイナリ ファイル (既に圧縮されている画像など) にも役立ちません。そのため、可能であれば、アセットの別のソリューションを検討することをお勧めします。