Git Hub Clone All Branches At Once
我正在尝试使用Linux将整个存储库克隆到我的机器上。我用过
1 | git clone <url> |
然后我进入下载和输入的文件夹
1 | git branch |
号
在终点站。它只显示master,而不显示远程存储库中的其他分支。如何克隆所有分支?
我知道对于遥控器中的每个分支,我都可以单独使用
1 | git checkout -b <name of local branch> origin/<name of remote branch> |
但是还有别的办法吗?
(1)在Git本地收回中,创建一个新的sh文件
1 2 | touch getAllBranches.sh vi getAllBranches.sh |
(2)在
1 2 3 | for branch in `git branch -a | grep remotes | grep -v HEAD | grep -v master `; do git branch --track ${branch#remotes/origin/} $branch done |
。
(3)获取所有分支:
1 2 | chmod +x getAllBranches.sh sh getAllBranches.sh |
。
(4)检查本地存储库的结果:
1 | git branch |
例如,我使用存储库:https://github.com/donhuvy/spring-boot
如您所见,已将所有分支提取到本地计算机:
。
这并不太复杂,非常简单直接的步骤如下:
克隆repo后,运行
1 2 3 4 5 6 | $ git branch -a * master remotes/origin/HEAD remotes/origin/master remotes/origin/v1.0-stable remotes/origin/experimental |
如果要在远程分支上工作,则需要创建本地跟踪分支:
1 | $ git checkout -b experimental origin/experimental |
号
通过以下命令验证您是否在所需的分支中;
1 | $ git branch |
输出将像这样;
1 2 3 4 | *experimental master some branch2 some branch3 |
。
注意表示当前分支的*符号。
It's only showing me master and not other branches which were in the remote repository. How do I clone all branches?
号
分支本质上是提交的指针。当您执行
但是,默认情况下,
值得注意的是,标签不会以这种方式运行,本地和远程标签之间也没有区别。
1 | git clone --bare <repository url goes here> .git |
。
然后,在使用repo的所有分支克隆repo之后,执行以下操作
1 2 3 | git config --bool core.bare false git reset --hard |
要下载完整的存储库(包括所有分支),请使用以下命令:江户十一〔七〕号
这将创建一个名为
现在,这将为您提供原始存储库的完整克隆,但由于它处于
要使其成为"普通"git repo,我们需要使此克隆在新文件夹中的
埃多克斯1〔12〕
注意,没有一个本地git命令来下载所有远程分支,所以最简单的方法是确保所有提交都推送到了源站,然后使用这个--mirror选项重新下载整个存储库。
我发现这是克隆Git存储库和所有远程分支的简单解决方案:
1 2 3 4 5 6 7 8 9 10 11 | # Clone remote repository and all branches git clone --mirror https://github.com/test/frontend.git frontend/.git # Change into frontend directory cd frontend # Update git config git config --unset core.bare # Checkout master branch git checkout master |
。