git clone
是否复制远程存储库中的每个分支?
是否可以要求它克隆某些分支,而不是克隆其他一些分支,就像git fetch
通过其refspec参数所做的那样?
答案 0 :(得分:0)
请记住,git clone
与其他所有Git一样,对分支名称 的关注并不多,而是对 commits 的关注。只是Git(和git clone
)需要名称才能查找提交。
git clone
命令本身主要包括:
git init
git remote add
保存URL git fetch
git checkout
因此,问题实际上可以归结为:您能控制fetch =
添加的遥控器的git clone
设置吗?
答案是是,但仅限于一定程度。限制是:
--mirror
将refspec设置为+refs/*:refs/*
。--bare
将refspec设置为+refs/heads/*:refs/heads/*
和+refs/tags/*:refs/tags/*
。--single-branch
或任何暗示它将refspec设置为适合该操作的命令。在没有这两种方法的情况下,您将获得标准的refspec。因此,--single-branch
允许您选择要克隆的一个分支(通过更改为单分支refspec),而--mirror
则可以使您进入refs/heads/
命名空间之外,但是,至少到今天为止,还没有论点可以做一些中间子集。如果愿意,您可以改为自己执行mkdir
/ git init
/ git remote add
/ git config
/ git fetch
/ git checkout
命令序列取得一些特殊的结果。