git clone 下载所有分支

通常情况下,我们使用命令 git clone 来下载代码。但是下载的代码一般都是默认分支(默认分支可以再gitlab/github里设置)。

# 克隆代码,仅下载一个分支,gitlab/github上设置的默认分支,一般是master/main。也可以指定分支clone
git clone https://github.com/pcottle/learnGitBranching.git

此时。

# 显示本地分支(注意:是本地分支),分支前面有 * 号的表示处于当前分支
git branch
# 显示所有分支,包括远程分支。
git branch -a

在有网的情况下。我们clone代码之后,切换分支时比较容易的,通过。

git checkout 分支名

即可切换分支。但是如果说目前并不知道要用到哪些分支。而且我需要把代码传输到内网环境下使用,那就只能 挨个去checkout 所有分支,然后就进行内网传输。

这就带来一个问题,如果代码分支数量少还好说,如果分支比较多,就比较麻烦了。有什么简单的方法可以一次下载所有分支么?

通过我们在做Git迁移时,需要使用到一个命令。

git clone --bare https://github.com/pcottle/learnGitBranching

即 git clone --bare (需要注意这种方法下载的文件是不能直接使用的)。 关于git迁移,可以查阅

那么现在我们也可以通过使用这种方式来进行全量分支的下载。

# 创建一个空文件夹
mkdir repo
# 进入该文件夹
cd repo
# 使用bare方式clone代码。并把下载后的文件夹重命名为 .git
git clone --bare path/to/repo.git .git
# 使用该命令(不用担心core.bare是否存在) 或 git config --bool core.bare false
git config --unset core.bare
# 上面的命令执行完,再执行该命令,就可以看到仓库里面的内容了
git reset --hard

之后你就可以通过

git branch

命令查看本地所有分支。你会发现本地有所有的分支。

这里有几点需要注意:

1.是使用bare的形式去下载

2.下载完后重命名文件夹

3.将重命名后的文件夹,放到一个空文件中(这一步不是必须的,但是有必要,因为如果不这么做并且所在文件夹的文件数量有很多的的话,后续的两个命令恢复的代码,会搞的比较乱)

目前来说这种方式是最好的下载git所有分支的办法了。网上的其他方法并不好用。

参见:git - How do I clone all remote branches? - Stack Overflow 

Jacob Fike的回答

猜你喜欢

转载自blog.csdn.net/kanyun123/article/details/116749871