如何在仅克隆一个分支后克隆整个 Github 存储库?
How to clone the entire Github repo, after cloning only one branch?
我使用
只克隆了一个仓库的一个分支
git clone -b mybranch --single-branch git://sub.domain.com/repo.git
如 Clone only one branch
中所述
现在我想要获取整个存储库,包括该位置的所有分支。
我该怎么做?
最简单的方法是只删除该位置的当前文件夹,然后在没有所有标志的情况下进行正常的 git 克隆:
git clone git://sub.domain.com/repo.git
当您使用 --single-branch
选项时,您最终会得到 .git/config
中命名遥控器的配置,如下所示:
[remote "origin"]
url = https://github.com/project/repo.git
fetch = +refs/heads/some_branch:refs/remotes/origin/some_branch
您可以编辑配置以将 fetch
配置重置为默认值:
git config remote.origin.fetch '+refs/heads/*:refs/remotes/origin/*'
然后:
git remote update
现在您拥有了整个存储库。
您可以做一个普通的 git clone
,或者您可以做一个完整的 duplicate/mirror,即 完全 就像您正在克隆的回购
git clone --bare https://github.com/project/example.git
这是一个完全相同的复制品,复制了所有相同的参考文献/注释/但没有远程跟踪。如果你也想要,那么你可以:
git clone --mirror https://github.com/project/example.git
主要的 differences 是 --mirror
设置了远程跟踪,无论您从中镜像的 repo 发生了什么变化,都会反映在该镜像副本中,如果需要,它将覆盖它自己的引用,这非常适合制作存储库的多个精确副本。
More info on duplicating/mirroring a repository here and well as how to properly mirror a git repository
我使用
只克隆了一个仓库的一个分支git clone -b mybranch --single-branch git://sub.domain.com/repo.git
如 Clone only one branch
中所述现在我想要获取整个存储库,包括该位置的所有分支。
我该怎么做?
最简单的方法是只删除该位置的当前文件夹,然后在没有所有标志的情况下进行正常的 git 克隆:
git clone git://sub.domain.com/repo.git
当您使用 --single-branch
选项时,您最终会得到 .git/config
中命名遥控器的配置,如下所示:
[remote "origin"]
url = https://github.com/project/repo.git
fetch = +refs/heads/some_branch:refs/remotes/origin/some_branch
您可以编辑配置以将 fetch
配置重置为默认值:
git config remote.origin.fetch '+refs/heads/*:refs/remotes/origin/*'
然后:
git remote update
现在您拥有了整个存储库。
您可以做一个普通的 git clone
,或者您可以做一个完整的 duplicate/mirror,即 完全 就像您正在克隆的回购
git clone --bare https://github.com/project/example.git
这是一个完全相同的复制品,复制了所有相同的参考文献/注释/但没有远程跟踪。如果你也想要,那么你可以:
git clone --mirror https://github.com/project/example.git
主要的 differences 是 --mirror
设置了远程跟踪,无论您从中镜像的 repo 发生了什么变化,都会反映在该镜像副本中,如果需要,它将覆盖它自己的引用,这非常适合制作存储库的多个精确副本。
More info on duplicating/mirroring a repository here and well as how to properly mirror a git repository