git子模块添加需要更长的时间

git子模块添加需要更长的时间,git,github,bitbucket,git-submodules,gitblit,Git,Github,Bitbucket,Git Submodules,Gitblit,我的子模块存储库超过2 gb。每当我向localrepo添加子模块时,它都会克隆整个子模块远程存储库 git submodule add -f -b localbranch https://mygitserversuperprojecturl/server.git .submodule/server_git 结果: 正在克隆到“子模块/服务器\u git” 因此,通常需要1个多小时才能完成,有谁能帮我添加特定的分支而不添加整个子模块remote repo git verison 1.8.3

我的子模块存储库超过2 gb。每当我向localrepo添加子模块时,它都会克隆整个子模块远程存储库

git submodule add -f -b localbranch https://mygitserversuperprojecturl/server.git .submodule/server_git
结果: 正在克隆到“子模块/服务器\u git”

因此,通常需要1个多小时才能完成,有谁能帮我添加特定的分支而不添加整个子模块remote repo

  git verison 1.8.3.1
谢谢。

如果您可以升级Git(至少升级到1.8.4,但最好升级到2.16.2),您可以从中受益:这将避免克隆完整的历史记录

OP补充道:

对于这种情况,我需要完整的历史记录来匹配以前的历史记录。
我们在脚本中这样做,所以整个过程需要花这么多时间才能完成

由于存在,您可以分两步添加子模块,如下所示:

仅克隆myBranch,您将无法克隆完整的2GB回购。
通过不添加
--depth 1
,您将获得该分支的完整历史记录

OP详细信息:

实际上,在这里,我需要所有分支的完整历史记录,当我添加子模块大约需要2分钟时,大小是(2gb),我将创建我的
branch1
一旦完成,我将在我的branch1中推送我的更改,一旦确定,我们将签出到主分支,在那里我们将推送所有更改

那么这是一个(Git 2.5+,所以先升级Git):
克隆一次Git回购,但签出两次,每个分支一次。

这样,您就有了两个不同的文件夹,其中有两个不同的分支已签出。切换分支非常快,更新这些分支(
git pull
)比完全签出更快。

我的git版本是1.8.3.1对于这种情况,我需要完整的历史记录来匹配以前的历史记录。我们正在脚本中执行此操作,因此整个过程需要花费很长时间才能完成。@vinoth我已编辑了答案以满足您的要求。实际上,在这里,我需要所有分支的完整历史记录,当我添加子模块时,大约需要2分钟,大小为(2gb),我将创建分支1一旦完成,我将在分支1中推送我的更改,一旦确定,我们将结帐到主分支,在那里我们将推动所有的变化。(因此主分支在这里大约为2GB,签出主分支也需要很长时间)stackoverflow编号-49187351@vinoth当然,没问题:我已经编辑了答案以适应您的要求。
git submodule add --depth 1 -- repository path
git clone -b myBranch --single-branch https://mygitserversuperprojecturl/server.git .submodule/server_git
git submodule add -b myBranch  https://mygitserversuperprojecturl/server.git .submodule/server_git