如何最小化克隆存储库以能够列出分支和检出单个文件

时间:2019-05-21 11:14:19

标签: git bitbucket

我正在寻找尽可能减少克隆的机会, 因此不会下载任何源(签出) 然后我完成“最小克隆”之后
我需要能够做到:

git branch -r

列出所有回购分支

然后从列表中选择分支,并仅从选定分支中检出1个文件

我真的很想避免下载和更新所有回购源代码。 在此示例中,我想获取“开发”的所有远程分支

我试图做“最小克隆”的是:

git clone  --depth 1 --no-checkout https://user:pass@bitbucket.org/foo/project.git 

但是当我列出分支机构时:

 git branch -r

我正在获取:

 origin/HEAD -> origin/develop
  origin/develop

当我结帐来源/开发人员获取所有来源

但是它确实下载了我所有的回购资源。

我使用git版本2.10.2.windows.1。

1 个答案:

答案 0 :(得分:2)

初始化存储库,而不是通过git clone创建存储库,

git init project
cd project
git remote add origin https://user:pass@bitbucket.org/foo/project.git

要列出所有裁判,

git ls-remote

如果仅分支,

git ls-remote --heads

选择一个分支,说develop,并仅获取其最后一次提交,

git fetch origin develop --depth 1

配置sparse-checkout仅检出1个文件,例如path/to/foo.txt

git config core.sparsecheckout true
echo "path/to/foo.txt" >> .git/info/sparse-checkout

签出唯一的文件,

git checkout develop