[英]How to maintain shallow clone of a set of branches in git
我想維護一個淺層,鏡像,裸露的幾個分支的克隆。 我將從不同項目分支的本地克隆。 例如
+------------------------------------------------------------------+
| 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的淺薄限制。
但是,在保持其淺薄度的同時保持repo2的最新狀態是我所堅持的(理想情況下,我希望保持一切,因為某個提交,但我明白這是不可能的)。 看來我每次都要做多個git fetch命令,這是對的嗎? 有沒有辦法在配置文件中彈出它,以便我可以做git fetch
,它知道我的意思?
我在尋找類似復雜的Git需求時遇到了這個問題,並且完全理解這個問題是2年前的問題。 我正在回答,因為根本沒有答案,而問題仍然非常有效。
Shallowness主要是fetch
屬性。 因此,可以使用--depth 200
進行fetch
並保留歷史記錄,而無需過多的提交。
現代版的Git有--shallow-exclude
選項。 我認為這正是允許“自某次提交以來維護所有內容”的原因。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.