我使用SourceTree和git flow创建了一个功能分支(按下按钮)。然后我尝试将这些分支克隆到repo的另一个本地副本,但我不能再在本地获取这些分支。例如,如果我发出:
git branch -v -a,我看到了:
gmmo@DESKTOP-GIMBJM0 MINGW64 /C/Dogwood (develop)
$ git branch -v -a
* develop de5e2f2 Updated to Build 4.1.6.37
master 0aa9613 Release 4.1.6.37
remotes/origin/HEAD -> origin/master
remotes/origin/develop de5e2f2 Updated to Build 4.1.6.37
remotes/origin/feature/cleanups ef035e9 Added alert dialog
remotes/origin/master 0aa9613 Release 4.1.6.37
所以remotes / *是由git flow创建的。我只手动创建了开发和掌握
但是如何轻松地将所有遥控器克隆回本地驱动器?
我试过
git fetch
但不确定它做了什么,因为如果我发出
git branch
我只在驱动器上看到两个主要分支。
* develop
master
gmmo@DESKTOP-GIMBJM0 MINGW64 /C/Dogwood (develop)
有没有一种简单的方法来克隆所有这些分支,而无需重新克隆整个仓库?
THX!
答案 0 :(得分:2)
如果您想在本地获取远程分支,则需要检查它。 当你这样做
git checkout feature/cleanups
git应该足够聪明,能够识别它是一个远程存储库,并自动创建跟踪远程版本的分支的本地副本。如果这不起作用,你可能运行旧版本的git,我建议尝试更新。适用于旧版本的替代方案是
git checkout --track origin/feature/cleanups
您也可以使用SourceTree。找到并双击Remotes>下的分支。起源。它会创建一个用于检出新分支的弹出窗口;默认值应该没问题。
那就是说,你描述的行为有点奇怪。克隆本地存储库时,应获得精确副本,包括功能分支。你说你试图克隆这些分支"。您克隆存储库,而不是分支。您可以克隆存储库的副本,只获得一个带有--single-branch
选项的分支(请参阅docs),但此用途有限。