我在~/local_repo有一个本地Git存储库。它有几个分支:

$ git branch
* master
  rails
  c
  c++

要克隆本地存储库,我做:

$ git clone ~/local_repo new_repo
Initialized empty Git repository in /home/username/new_repo/.git/

new_repo master分支指向local_repo master分支,我可以推/拉。

但我无法克隆另一个分支。我只想拉我想要的分支(例如rails),这样新的存储库就有一个主分支,默认情况下,它可以推入和拉出local_repo的rails分支。我如何实现这一点,或者也许类似于local_repo跟踪主local_repo?


当前回答

对于像我这样的新手来说, 只需运行下面的代码

git clone https://gitlab.com/repo/repo.git --branch <name of branch> --single-branch

其他回答

使用Github CLI

如果您正在使用Github CLI克隆一个回购,克隆选项必须声明不同。

——深度= 1

gh repo clone username/repo -- --depth=1

——单个的分支

gh repo clone username/repo -- --single-branch

——分支

gh repo clone username/repo -- --branch main --single-branch localDir

只克隆一个分支。这是最简单的方法:

git clone -b BRANCH_NAME --single-branch git@bitbucket.org:___/PROJECTNAME.git

使用Git版本1.7.3.1(在Windows上),下面是我所做的($BRANCH是我想要签出的分支的名称,$REMOTE_REPO是我想要克隆的远程存储库的URL):

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

这种方法的优点是后续的git pull(或git fetch)调用也会下载所请求的分支。

对于像我这样的新手来说, 只需运行下面的代码

git clone https://gitlab.com/repo/repo.git --branch <name of branch> --single-branch
git clone --branch {branch-name} {repo-URI}

例子:

git clone --branch dev https://github.com/ann/cleaningmachine.git

dev:这是{branch-name} https://github.com/ann/cleaningmachine.git:这是{repo-URI}