协慌网

登录 贡献 社区

如何克隆特定的 Git 分支?

Git clone 会将远程当前工作分支复制到本地。

有没有办法自己克隆一个特定的分支而无需在远程存储库上切换分支?

答案

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

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

与大多数愤怒的评论者和贬低者不同,您可能还想确保理解其中的差异。不同之处在于:通过调用git clone -b branch url您将获取所有分支并签出一个分支。例如,这可能意味着您的存储库具有 5kB 文档或 wiki 分支以及 5GB 数据分支。每当您想要编辑首页时,最终可能会克隆 5GB 的数据。

同样,这并不是说git clone -b不是实现这一目标的方式,只是当你要求克隆一个特定的分支时,它并不总是你想要完成的。

我今天要写的答案,以及今天的 git 将是

git clone --single-branch -b branch host:/dir.git

在撰写下面的原始答案时,git 没有--single-branch选项,但让我们保留它以让愤怒的蜜蜂完全满意。

copypasters 如此严重不喜欢的答案是:

git init
git remote add -t refspec remotename host:/dir.git
git fetch

要在获取其他分支的情况下克隆分支:

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