如何克隆一个特定的Git分支?

Git clone的行为是将远程的当前工作分支复制到本地。

有什么办法可以在不切换远程仓库的分支的情况下自己克隆一个特定的分支?

git clone -b  

例子。

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
评论(10)
解决办法
git clone --single-branch --branch  

--single-branch选项从1.7.10及以后的版本开始有效。

也请参考很多人喜欢的其他答案

你可能还想确保你理解其中的区别。区别在于:通过调用 git clone --branch url,你获取的是所有的分支,并签出一个。例如,这可能意味着你的版本库有一个5kB的文档或wiki分支和5GB的数据分支。每当你想编辑你的前台页面,你可能最终会克隆5GB的数据。

再说一遍,这并不是说`git clone --branch'不是实现这一目标的方法,只是当你要求克隆一个特定的分支时,它并不总是你想实现的。

在写下面的原始答案时,git没有--单分支选项,但为了充分满足愤怒的蜜蜂,让我们保留它。

那个被复制者严重厌恶的答案是这样的。

git init
git remote add -t refspec remotename host:/dir.git
git fetch
评论(3)

这里有一个非常简单的方法来实现它 :)

克隆版本库

git clone 

列出所有分支机构

git branch -a 

勾选您想要的分支

git checkout 
评论(7)

克隆一个分支,不需要获取其他分支。

mkdir $BRANCH
cd $BRANCH
git init
git remote add -t $BRANCH -f origin $REMOTE_REPO
git checkout $BRANCH
评论(5)
git checkout -b  

例如我的案例:

 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

在你按下回车键后,会发生以下情况:

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

"

评论(2)

在本地系统上用该名称创建一个分支,例如,假设你想获得名为"branch-05142011"的分支。

git branch branch-05142011 origin/branch-05142011

它会给你一个消息,比如 - "分支 branch-05142011 设置为跟踪来自 origin.的远程分支 branch-05142011。

现在只要像下面这样签出该分支,你就有了代码 -- git checkout branch-05142011

评论(5)
git --branch  

但bash完成后,并没有得到这个键。 --branch

好好享受吧

评论(0)