如何克隆特定的Git分支?

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

有没有办法在不切换远程存储库分支的情况下自己克隆特定分支?

4281638 次浏览
git clone --single-branch --branch <branchname> <remote-repo>

--single-branch选项在版本1.7.10及更高版本中有效。

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

您可能还想确保您了解其中的区别。区别在于:通过调用git clone --branch <branchname> url,您将获取所有分支并签出一个。例如,这可能意味着您的存储库有5kB留档或wiki分支和5GB数据分支。每当您想编辑首页时,您最终可能会克隆5GB数据。

同样,这并不是说git clone --branch不是实现这一目标的方法,只是当你询问克隆特定分支时,它不是你想要完成的总是

git clone -b <branch> <remote_repo>

示例:

git clone -b my-branch git@github.com: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

在本地系统上创建一个具有该名称的分支。例如,假设您想获取名为branch-05142011的分支

git branch branch-05142011 origin/branch-05142011

它会给你一个消息:

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

现在只需像下面这样检查分支,你就有了代码

git checkout branch-05142011

这里有一个非常简单的方法来做到这一点:)

克隆存储库

git clone <repository_url>

列出所有分支

git branch -a

检查你想要的分支

git checkout <name_of_branch>
git --branch <branchname> <url>

但是Bash完成没有得到这个密钥:--branch

要克隆分支没有并获取其他分支:

mkdir $BRANCHcd $BRANCHgit initgit remote add -t $BRANCH -f origin $REMOTE_REPOgit checkout $BRANCH

用途:

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

例如在我的案例中:

 git branch -a* masterorigin/HEADorigin/enum-account-numberorigin/masterorigin/rel_table_playorigin/sugarfield_customer_number_show_c

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

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

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

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