Могу ли я легко обновить все локальные ветки git из удаленных веток одновременно?

У меня есть хранилище git с (в настоящее время) тремя ветками:

  • head это стабильная версия (не путать с git HEAD)
  • experimental экспериментальный код; он должен скомпилировать
  • norman моя песочница; код в нем может быть сломан

"Главное" git-репозиторий находится на файловом сервере, для которого выполняется резервное копирование. Но у меня есть реплики на локальном диске, на компьютере дома и на моем ноутбуке. (Я готов написать код в любое время и в любом месте).

git branch -a показывает:

  experimental
  head
* norman
  tufts/HEAD
  tufts/experimental
  tufts/head
  tufts/norman

Пучки филиалов являются удаленными ветвями на "мастер" репо. Местные отделения должны отслеживать; git config -l | grep -w remote говорит:

remote.tufts.url=linux.cs.tufts.edu:/r/ghc/git/experimental.git
remote.tufts.fetch=+refs/heads/*:refs/remotes/tufts/*
branch.experimental.remote=tufts
branch.head.remote=tufts
branch.norman.remote=tufts

Вот мой вопрос: как мне обновить все локальные ветви от их удаленных коллег одновременно, используя одну команду git?git-fetch не совсем подходит; он обновляет то, что знает о содержимом каждой удаленной ветви, но не объединяет их с локальной. И видимо git-pull обновляет только проверенную ветку. Я хочу обновить все ветви сразу. Это можно сделать?

(Я не без ума от

for i in `git branch | sed 's/^.//'`; do git checkout $i ; git pull; done

отчасти потому, что для меня не очевидно, что происходит с измененными файлами в моем рабочем каталоге, пока все это происходит, и отчасти потому, что мне потребуется еще больше шелл-кода для сохранения и восстановления информации о том, в какой ветке я сейчас нахожусь.)

Я нашел один (не очень тесно связанный) вопрос:

0 ответов

Другие вопросы по тегам