При отслеживании единственного удаленного ответвления, поскольку локальное ответвление достаточно просто.
$ git checkout --track -b ${branch_name} origin/${branch_name}
Продвижение всех локальных ответвлений до удаленных, создающих новых удаленных ответвлений по мере необходимости также легко.
$ git push --all origin
Я хочу сделать реверс. Если у меня есть X количества удаленных ответвлений в единственном источнике:
$ git branch -r
branch1
branch2
branch3
.
.
.
Я могу создать локальные ответвления отслеживания для всех тех удаленных ответвлений без необходимого для ручного создания каждого? Скажите что-то как:
$ git checkout --track -b --all origin
Я погуглил и RTMs, но подошел койка к настоящему времени.
Используя удар:
после мерзавца 1.9.1for i in `git branch -a | grep remote | grep -v HEAD | grep -v master`; do git branch --track ${i#remotes/origin/} $i; done
перед мерзавцем 1.9.1кредиты: Val Blant, elias, и Hugo
Примечание: следующий код, если используется в более поздних версиях мерзавца (> v1.9.1) причины
- (ошибка) Все созданные ответвления для отслеживания ведущего устройства
- (раздражение) Все созданные локальные имена ответвления, которые будут снабжены префиксом
origin/
for remote in `git branch -r `; do git branch --track $remote; done
Обновление ответвления принимая, на локальных ответвлениях отслеживания нет никаких изменений:
for remote in `git branch -r `; do git checkout $remote ; git pull; done
Игнорируют неоднозначные refname предупреждения, мерзавец, кажется, предпочитает локальное ответвление, как оно должно.
Вы могли написать сценарий этого достаточно легко, но я не знаю, когда это было бы ценно. Те ответвления довольно быстро отстали бы, и необходимо будет обновить их все время.
удаленные ответвления автоматически будут усовершенствованными, таким образом, является самым легким только создать локальное ответвление в точке, где Вы на самом деле хотите работать над ним.