我的主分支和开发分支在GitHub上被远程跟踪。如何克隆这两个分支?
当前回答
所有分支机构
从Git项目下载所有分支的脚本
安装:
sudo git clone https://github.com/marceloviana/allBranches.git && sudo cp -rfv allBranches/allBranches.sh /usr/bin/allBranches && sudo chmod +x /usr/bin/allBranches && sudo rm -rf allBranches
准备好的现在只需调用命令(allBranches)并告诉Git项目目录,您希望下载所有分支
Use
示例1:
~$ allBranches /var/www/myproject1/
示例2:
~$ allBranches /var/www/myproject2/
示例3(如果已经在项目目录中):
~$ allBranches ./
or
~$ allBranches .
查看结果:
git branch
参考:
存储库allBranches GitHub:https://github.com/marceloviana/allBranches
其他回答
此变体将克隆具有本地可用的所有分支的远程回购,而无需逐个签出每个分支。不需要花哨的脚本。
创建一个与要克隆的存储库同名的文件夹,并将其放入cd中,例如:
mkdir somerepo
cd somerepo
现在执行这些命令,但使用实际的repo用户名/reportname
git clone --bare git@github.com:someuser/somerepo.git .git
git config --bool core.bare false
git reset --hard
git branch
哇!你有所有的树枝!
我在这里看到的所有答案都是有效的,但有一种更干净的方法可以克隆存储库并同时删除所有分支。
克隆存储库时,实际上会下载分支的所有信息,但分支是隐藏的。使用命令
git branch -a
您可以显示存储库的所有分支,并使用以下命令
git checkout -b branchname origin/branchname
然后,您可以一次手动下载一个。
然而,当您想要克隆具有大量分支的存储库时,前面的答案中所示的所有方法都是冗长和乏味的,而我将展示的是一种更加干净和快速的方法,尽管这有点复杂。您需要三个步骤来实现这一点:
1.第一步
在计算机上创建一个新的空文件夹,并从存储库克隆.git文件夹的镜像副本:
cd ~/Desktop && mkdir my_repo_folder && cd my_repo_folder
git clone --mirror https://github.com/planetoftheweb/responsivebootstrap.git .git
my_repo_folder文件夹中的本地存储库仍然是空的,现在只有一个隐藏的.git文件夹,您可以通过终端的“ls-alt”命令看到它。
2.第二步
通过将Git配置的布尔值“裸”切换为false,将此存储库从空(裸)存储库切换为常规存储库:
git config --bool core.bare false
3.第三步
获取当前文件夹中的所有内容,并在本地计算机上创建所有分支,从而使其成为正常的存储库。
git reset --hard
现在您只需键入命令“gitbranch”,即可看到所有分支都已下载。
这是一种快速的方法,您可以一次克隆一个包含所有分支的Git存储库,但这不是您希望对每个项目都这样做的。
如果您有许多远程分支要同时获取,请执行以下操作:
git pull --all
现在,您可以根据需要签出任何分支,而无需访问远程存储库。
注意:这不会创建任何未签出分支的工作副本,这就是问题所在。对此,请参见
大鱼的回答戴夫的回答
使用您可以记住的命令
我正在使用Bitbucket,一个Atlassian的存储库托管服务。所以我试着遵循他们的文档。这对我来说非常有用。使用以下简单而简短的命令,您可以签出远程分支。
首先克隆存储库,然后转到目标文件夹。最后,但并非最不重要的是,取件和结账:
git clone <repo> <destination_folder>
cd <destination_folder>
git fetch && git checkout <branch>
就是这样。这里有一个更真实的例子:
git clone https://username@bitbucket.org/team/repository.git project_folder
cd project_folder
git fetch && git checkout develop
您将在文档中找到有关命令的详细信息:克隆命令、获取命令、签出命令
关于
git checkout-b实验来源/实验
使用
git checkout -t origin/experimental
或者更冗长,但更容易记住
git checkout --track origin/experimental
在跟踪远程存储库方面可能更好。
推荐文章
- 如何设置一个git项目使用外部回购子模块?
- Git同时在两个分支上工作
- 如何在Visual Studio中删除未推送的外向提交?
- Git在两个不同的文件之间的差异
- 我如何使用vimdiff来解决git合并冲突?
- 如何将更改提交到另一个预先存在的分支
- 为什么使用'git rm'来删除文件而不是'rm'?
- 我如何安装imagemagick与自制?
- 致命:git-write-tree:错误构建树
- Git克隆远程存储库的特定版本
- git隐藏的意图用例是什么?
- 从远程Git存储库检索特定的提交
- 如何配置git bash命令行补全?
- 我如何迫使git拉覆盖每一个拉上的一切?
- 撤销“git add <dir>”?