Git:从裸usb遥控器中提取所有内容

Git:从裸usb遥控器中提取所有内容,git,Git,我试图设置一个usb硬盘作为我所有本地回购协议的移动版本。我使用的所有东西都不是在线的,现在也不是共享的。所以唯一的合作者就是我。 因此,我们的目标是保存我的整个进度,并从其他机器上的usb克隆它。重要的是,所有的标签,尤其是分支,都被推拉。我真的不想为每个分支手动执行某些操作。 到现在为止,我使用 $ cd /Volumes/usb $ git clone --mirror /path/to/working/repo 现在我想把所有的东西都从裸回购(据我所知,这意味着裸回购)。 因此,我转到

我试图设置一个usb硬盘作为我所有本地回购协议的移动版本。我使用的所有东西都不是在线的,现在也不是共享的。所以唯一的合作者就是我。 因此,我们的目标是保存我的整个进度,并从其他机器上的usb克隆它。重要的是,所有的标签,尤其是分支,都被推拉。我真的不想为每个分支手动执行某些操作。 到现在为止,我使用

$ cd /Volumes/usb
$ git clone --mirror /path/to/working/repo
现在我想把所有的东西都从裸回购(据我所知,这意味着裸回购)。 因此,我转到另一台机器/文件夹并执行

$ git clone file:///Volumes/usb/repo.git
主分支在本地克隆,我得到一个工作目录。但是,所有其他分支都只在远程(裸usb repo)上,不会被拉出。 如果我使用
git branch-r
,我可以在遥控器上看到所有这些,但是拉也没用

$ git br -a
* devel
  remotes/origin/HEAD -> origin/devel
  remotes/origin/devel
  remotes/origin/master

$ git pull origin master
From /test/repo
* branch            master     -> FETCH_HEAD
Already up-to-date.
$ git br -a
* devel
  remotes/origin/HEAD -> origin/devel
  remotes/origin/devel
  remotes/origin/master
没有任何变化,也没有在当地设立分支机构。整个要点甚至是将所有远程分支设置为本地分支。我真的很想从我结束的地方开始

然而,所有其他分支都只在远程(裸usb repo)上,不会被拉出

它们被拉出。
您可以看到它们,不是在“remote”上,而是在名称空间原点的本地repo中

如果您确实希望将这些远程跟踪分支作为分支,请参阅我在“”中使用的onle liner

一旦所有本地分支都在跟踪远程跟踪分支,您仍然必须使用。

正如这里所述:没有本地方法。如果有人找到更好的工作流程,请回答我。到目前为止,脚本编写方法是有效的,就像建议的那样。
$ remote=origin ; for brname in `git branch -r | grep $remote | grep -v master | grep -v HEAD | awk '{gsub(/[^\/]+\//,"",$1); print $1}'`; do git branch -t $brname $remote/$brname ; done