2012-05-14 3 views
4

Когда мерзавец клонировать некоторые хранилища, то он извлекает все ветви из него:Git контроля удаленный филиал удаленного хранилища

git clone https://github.com/android/platform_build.git build1 
cd build1/ && git branch -a && cd .. 

тогда, когда я использую build1 как зеркало и клонировать его, я не вижу, все его удаленные ветви (я вижу только build1 «s местный мастер филиал)

git clone build1 build2 
cd build2 && git branch -a && cd .. 

Как я могу оформить удаленный из удаленных филиалов?

Я знаю, что я могу оформить все удаленные филиалы в build1 зеркала с командой

cd build1 && for remote in `git branch -r `; do git branch --track $remote; done 

Track all remote git branches as local branches , но что, если у меня нет доступа к каталогу build1?

Также есть команда git ls-remote origin, которая показывает все удаленные ссылки, но есть ли какой-либо элегантный способ проверить удаленные удаленные ветви?

+0

Могу я предложить вместо 'https: //' using 'git: //'? Извлечение намного эффективнее как для вас, так и для сервера. – jthill

ответ

1

После клонирования build1 в build2, build1 является build2 «s origin и build2 ничего не знает о https://github.com/android/platform_build.git, который, где живет„удаленная“ветвь. Одним из решений может быть добавление https://github.com/android/platform_build.git в качестве пульта дистанционного управления в конфигурации build2. Чтобы добавить удаленный называется github:

git remote add github https://github.com/android/platform_build.git 

Затем запустите fetch получить удаленные филиалы:

git fetch github 

Теперь, когда вы запускаете git branch -a вы должны увидеть ветви с префиксом remotes/github/, которые соответствуют с теми, с префиксом remotes/origin в build1.

С другой стороны, build2 должен иметь удаленную ветвь для каждой локальной ветви в build1, включая те, которые отслеживают удаленные ветви с точки зрения build1. Например, если есть филиал с именем foo на github, он будет отображаться как remotes/origin/foo в build1. Если вы настроили локальный филиал для отслеживания этого удаленного отделения в build1, также называемом foo, то build2 должен иметь также remotes/origin/foo. Затем, когда foo обновляется в build1 путем извлечения/слияния изменений с foo от github, эти изменения должны отображаться в build2 после fetch/pull.

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