【发布时间】:2020-09-27 10:54:21
【问题描述】:
我正在尝试克隆存储库中的多个特定分支。
我知道可以使用--single-branch 克隆一个特定的分支,但是如果我想要 2 个特定的分支而没有其他分支怎么办?
我知道我可以使用git config remote.origin.fetch 所示的here 来更改“受监控”分支的正则表达式,但是我可以在克隆时这样做吗?
【问题讨论】:
标签: git branch git-branch
我正在尝试克隆存储库中的多个特定分支。
我知道可以使用--single-branch 克隆一个特定的分支,但是如果我想要 2 个特定的分支而没有其他分支怎么办?
我知道我可以使用git config remote.origin.fetch 所示的here 来更改“受监控”分支的正则表达式,但是我可以在克隆时这样做吗?
【问题讨论】:
标签: git branch git-branch
您不能直接使用git clone 执行此操作,但您不需要这样做。
请记住,git clone 是做 git init、git remote add、git fetch 和 git checkout 的缩写(更准确地说,有六个步骤,但这是要点)。 git remote add 命令本身可以添加多个单分支,而git clone 不能。
因此,两种方法是:
git remote add
git remote set-branches origin 其余每个分支(每个命令一个或一次全部)。如果您使用git remote set-branches 方法,请记住之后再次运行git fetch。
【讨论】:
git remote set-branches <remote> <branch> 并认为“天哪,我可以将它用于我的一次性分支提取”的人:请注意,这将重置您的 refspec,直到您重置它。要返回获取所有分支,您需要使用git remote set-branches <remote> '*'(请参阅stackoverflow.com/a/47726250/2752888)
git fetch <repository> <refspec>。您可以为<repository> 部分使用远程名称或原始 URL;如果您使用 URL,Git 将无法更新任何远程跟踪名称(尽管 git push -u 中的某种错误有时会出现其他声明)。