如何克隆特定的 Git 分支? [重复]

问题描述 投票:0回答:7

Git克隆会将远程分支克隆到本地。

有什么办法可以自己克隆特定的分支而不需要切换远程仓库上的分支?

git git-branch git-clone
7个回答
9010
投票
git clone -b <branch> <remote_repo>

示例:

git clone -b my-branch [email protected]:user/myproject.git

对于 Git 1.7.10 及更高版本,添加

--single-branch
以防止获取所有分支。例如,使用 OpenCV 2.4 分支:

git clone -b opencv-2.4 --single-branch https://github.com/Itseez/opencv.git

2506
投票
git clone --single-branch --branch <branchname> <remote-repo>

--single-branch
选项从版本1.7.10及更高版本起有效。

另请参阅许多人喜欢的其他答案

您可能还想确保您了解其中的区别。区别在于:通过调用

git clone --branch <branchname> url
,您将获取 all 分支并签出其中一个。例如,这可能意味着您的存储库有 5kB 文档或 wiki 分支和 5GB 数据分支。每当您想要编辑首页时,您最终可能会克隆 5GB 的数据。

再次强调,这并不是说

git clone --branch
不是实现这一目标的方法,只是当您询问克隆特定分支时,这并不是您想要实现的总是


363
投票

这是一个非常简单的方法:)

克隆存储库

git clone <repository_url>

列出所有分行

git branch -a 

查看您想要的分行

git checkout <name_of_branch>

267
投票

要克隆分支而不获取其他分支:

mkdir $BRANCH
cd $BRANCH
git init
git remote add -t $BRANCH -f origin $REMOTE_REPO
git checkout $BRANCH

144
投票

用途:

git checkout -b <branch-name> <origin/branch_name>

以我为例:

 git branch -a
* master
  origin/HEAD
  origin/enum-account-number
  origin/master
  origin/rel_table_play
  origin/sugarfield_customer_number_show_c

因此,要根据我的枚举帐号分支创建一个新分支,我会这样做:

git checkout -b enum-account-number origin/enum-account-number

点击Return后,会发生以下情况:

Branch enum-account-number set up to track remote branch refs/remotes/origin/enum-account-number.
Switched to a new branch "enum-account-number"

40
投票

使用该名称在本地系统上创建一个分支。例如假设您想要将分支命名为

branch-05142011

git branch branch-05142011 origin/branch-05142011

它会给你一条消息:

$ git checkout --track origin/branch-05142011
Branch branch-05142011 set up to track remote branch refs/remotes/origin/branch-05142011.
Switched to a new branch "branch-05142011"

现在只需检查如下所示的分支即可获得代码

git checkout branch-05142011

34
投票
git --branch <branchname> <url>

但是Bash补全没有得到这个键:

--branch

© www.soinside.com 2019 - 2024. All rights reserved.