いくつかのブランチの浅い、ミラー化された、裸のクローンを維持したいと思います。さまざまなプロジェクト ブランチ用に、そこからローカルに複製します。例えば
+------------------------------------------------------------------+
| repo1: server1:original-repo.git branches: A, B, C, D, E |
+------------------------------------------------------------------+
↓
+------------------------------------------------------------------+
| repo2: server2:shallow-bare-selective-clone branches: A, B only |
+------------------------------------------------------------------+
↓ ↓
+-------------------------------+ +--------------------------------+
| repo3: server2:clone repo2, A | | repo4: server2:clone repo2, B |
+-------------------------------+ +--------------------------------+
だから私はこのようにrepo2を作ることができます
git clone --bare --mirror --depth 1 server1:repo1 repo2
cd repo2
git fetch --depth 200 origin A
git fetch --depth 200 origin B
そして、repo3と4は本当に簡単だと思います-repo2から必要なものをすべて複製できますが、repo2の浅さによって制限されます。
しかし、その浅さを維持しながら repo1 から repo2 を最新の状態に保つことは、私が行き詰まっていることです (理想的には、特定のコミット以降のすべてを維持したいのですが、それは不可能であることを理解しています)。毎回複数の git fetch コマンドを実行する必要があるようですが、これでよろしいですか? 構成ファイルにそれをポップして、私がgit fetch
何を意味するのかを理解できるようにする方法はありますか?