2014-09-04 2 views
2

Я пытаюсь настроить usb-hdd, чтобы быть моей мобильной версией всех моих локальных репозиториев. Все, что я использую, не в сети и к настоящему времени не используется. Так что единственный соавтор - это я. Итак, цель состоит в том, чтобы сохранить весь прогресс и свернуть его с USB на другой машине. Важная часть состоит в том, что все теги и особенно ветви толкаются, а также вытаскиваются. И я действительно не хочу что-то делать для каждой ветки вручную. Теперь я клонировал мои операции РЕПО с использованиемGit: вытащить все из голого usb remote

$ 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

Все другие отрасли, однако только на пульте дистанционного управления (голый USB репо) и не втянуты

Они тянут.
И вы видите их, а не на «удаленных», но в локальном репо в пространстве имен.

Если вы действительно хотите, чтобы эти удаленные ветви трекинга как ветви, увидеть onle-лайнер я использую в «git pull all branches from remote repository»

$ 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.

+0

@mike обновите до последнего git: http://apple.stackexchange.com/a/127073 – VonC

+0

Как указано здесь: http://stackoverflow.com/questions/67699/how-to-clone-all- remote-branches-with-git? rq = 1 Нет никакого родного пути. Если кто-то найдет лучший рабочий процесс для этого случая, ответьте мне. До сих пор работает сценарий, как и предполагалось. – mike

Смежные вопросы