Git克隆将远程分支克隆到本地。
是否有任何方法可以在不切换远程存储库上的分支的情况下自行克隆特定分支?
Git克隆将远程分支克隆到本地。
是否有任何方法可以在不切换远程存储库上的分支的情况下自行克隆特定分支?
当前回答
git clone --single-branch --branch <branchname> <remote-repo>
--single branch选项在1.7.10版及更高版本中有效。
另请参阅许多人更喜欢的另一个答案。
你可能还想确保你了解其中的区别。不同之处在于:通过调用gitclone--branch<branchname>url,您获取了所有分支并签出了一个。例如,这可能意味着您的存储库具有5kB的文档或wiki分支和5GB的数据分支。每当你想编辑首页时,你可能会克隆5GB的数据。
同样,这并不是说gitclone——分支不是实现这一点的方法,只是当您询问克隆特定分支时,它并不总是您想要实现的。
其他回答
这里有一个非常简单的方法:)
克隆存储库
git clone <repository_url>
列出所有分支
git branch -a
签出所需的分支
git checkout <name_of_branch>
git clone -b <branch> <remote_repo>
例子:
git clone -b my-branch git@github.com:user/myproject.git
在Git1.7.10及更高版本中,添加--singlebranch以防止获取所有分支。例如,使用OpenCV 2.4分支:
git clone -b opencv-2.4 --single-branch https://github.com/Itseez/opencv.git
要克隆分支而不获取其他分支,请执行以下操作:
mkdir $BRANCH
cd $BRANCH
git init
git remote add -t $BRANCH -f origin $REMOTE_REPO
git checkout $BRANCH
git clone --single-branch --branch <branchname> <remote-repo>
--single branch选项在1.7.10版及更高版本中有效。
另请参阅许多人更喜欢的另一个答案。
你可能还想确保你了解其中的区别。不同之处在于:通过调用gitclone--branch<branchname>url,您获取了所有分支并签出了一个。例如,这可能意味着您的存储库具有5kB的文档或wiki分支和5GB的数据分支。每当你想编辑首页时,你可能会克隆5GB的数据。
同样,这并不是说gitclone——分支不是实现这一点的方法,只是当您询问克隆特定分支时,它并不总是您想要实现的。
git --branch <branchname> <url>
但Bash完成没有得到这个键:--分支