Git:从裸USB遥控器上取下所有东西

时间:2014-09-04 10:49:39

标签: git

我尝试将usb-hdd设置为我所有本地回购的移动版本。我使用的一切都不在线,现在还没有分享。所以唯一的合作者就是我。 所以我的目标是保存我的整个进度并将其从usb上克隆到其他机器上。重要的是,所有的标签,特别是分支被推,拉,以及。而且我真的不想手动为每个分支做些什么。 到现在为止,我使用

克隆了我的回购
$ cd /Volumes/usb
$ git clone --mirror /path/to/working/repo

现在我想从裸露的东西(据我所知,镜子暗示裸露)回购。 所以我去另一台机器/文件夹做一个

$ git clone file:///Volumes/usb/repo.git

并在本地克隆主分支,我得到一个工作目录。然而,所有其他分支只是在遥控器(裸USB回购)上,并没有被拉。 如果我使用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

没有任何改变,也没有设置本地分支。重点甚至是将所有远程分支设置为本地分支。我真的想开始,我离开的地方。

1 个答案:

答案 0 :(得分:1)

  

然而,所有其他分支机构都只是在遥控器(裸USB回购)上而且没有被拉动

他们被拉了。
你看到它们,而不是"远程",但是在命名空间原点的本地仓库中。

如果您真的想将这些远程跟踪分支作为分支,请参阅我在" git pull all branches from remote repository"

使用的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 

一旦所有本地分支机构都在跟踪远程跟踪分支机构,您仍然需要使用script if you were to pull all branches