克隆单分支后克隆另一个分支

Posted

技术标签:

【中文标题】克隆单分支后克隆另一个分支【英文标题】:Clone another branch after cloning single-branch 【发布时间】:2022-01-20 08:25:22 【问题描述】:

我正在使用以下命令克隆一个分支:

git clone user@git-server:project_name.git -b branch_name --single-branch /your/folder

现在我想从服务器检查另一个分支。我尝试了下面的命令,它没有工作

git checkout another_branch

克隆一个分支后,如何克隆/checkout/pull/fetch 另一个分支?

【问题讨论】:

【参考方案1】:

您可以通过在git fetch 调用中的远程名称之后指定另一个远程分支来获取另一个远程分支:

git fetch origin another_branch

获取后,您会在 FETCH_HEAD 中找到它,并使用它来创建本地分支:

git checkout FETCH_HEAD -b another_branch

【讨论】:

【参考方案2】:

除了Mureinik's answer——它适用于一些“一次性”/短期工作案例——您还可以使用git remote 添加其他分支,或将您的单分支克隆更新为全分支克隆:

git remote set-branches --add origin another-branch

在此之后,git fetch origin 将创建远程跟踪名称origin/another-branch,这将允许git checkout another-branch 调用--guess 模式从您的远程跟踪名称创建您的(本地)分支名称another-branch origin/another-branch.

要对克隆进行去单分支化,请使用:

git remote set-branches origin "*"

(照常跟在git fetch之后)。

请注意,您是否需要引用星号取决于您的命令行解释器,但通常这样做是安全

【讨论】:

以上是关于克隆单分支后克隆另一个分支的主要内容,如果未能解决你的问题,请参考以下文章

使用git clone 克隆版本库时为啥只克隆了一个.git隐藏文件夹?

来自分支的 Mercurial 克隆

如何克隆 git bitbucket 中的特定分支

GitGit 分支管理 ( 克隆远程分支 | 克隆 master 分支 git clone | 查看远程分支 git branch -a | 克隆远程分支 git checkout -b )(代码片段

GitGit 分支管理 ( 克隆远程分支 | 克隆 master 分支 git clone | 查看远程分支 git branch -a | 克隆远程分支 git checkout -b )(代码片段

Git克隆一个分支,而不是master