如何克隆只有非主分支的git存储库?

时间:2009-08-18 14:00:41

标签: git

如果您不想下载不需要的文件。

2 个答案:

答案 0 :(得分:8)

git clone总是克隆整个存储库,除非您指定--depth <n>参数将存储库限制为最新的 n 版本(所谓的“浅层克隆”)。

但是,您可以创建本地存储库并使用git fetch仅获取远程存储库的部分内容。

cd /path/foo
git init
git remote add origin <some url>
git fetch origin <some branch>

这将复制git clone的大部分内容,但将其限制为您在命令行中指定的分支。 (我不确定进一步的细节,如跟踪分支和标签等。)

答案 1 :(得分:3)

你的问题标题和摘要有点问两个不同的问题,因为正如Bombe所说,除非使用--depth选项,否则克隆总是获取所有内容。

我不确定你真正想要什么,但另一个选择是使用--no-checkout(或-n)标记进行克隆。默认情况下,git将检出存储库的默认分支(由远程存储库中的HEAD ref确定 - 它并不总是master)。如果您使用-n标记git,则不会为您签出分支,因此您可以查看您想要的内容:

git clone -n <some url> foo
cd foo
git checkout <some branch>