我想维护一个浅层,镜像,裸露的几个分支的克隆。我将从不同项目分支的本地克隆。 e.g。
+------------------------------------------------------------------+
| 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
,它知道我的意思?
答案 0 :(得分:0)
我在寻找类似复杂的Git需求时遇到了这个问题,并且完全理解这个问题是2年前的问题。我回答是因为根本没有答案,而问题仍然非常有效。
浅度主要是std::string getUser()
{
char username[64];
// Use the ASCII version of the function
if (GetUserNameA(username, sizeof username))
{
return username;
}
// An error
std::cerr << "Error getting username: " << GetLastError() << '\n';
return "";
}
属性。因此可以使用fetch
执行fetch
并保留历史记录,而无需过时的提交。
现代版的Git有--depth 200
选项。我认为它确实允许自从某个提交以来维护所有内容&#34;。