4

いくつかのブランチの浅い、ミラー化された、裸のクローンを維持したいと思います。さまざまなプロジェクト ブランチ用に、そこからローカルに複製します。例えば

+------------------------------------------------------------------+
| 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何を意味するのかを理解できるようにする方法はありますか?

4

1 に答える 1