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

У меня есть репозиторий git с (в настоящее время) тремя ветвями:

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

Реестр "master" 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

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

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

Ответы