Могу ли я легко обновлять все локальные ветки git от удаленных веток одновременно?
У меня есть репозиторий git с (в настоящее время) тремя ветвями:
-
head
- это стабильная версия (не путать с githead
) -
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
отчасти из-за того, что для меня не очевидно, что происходит с измененными файлами в моем рабочем каталоге, пока все это происходит, а отчасти потому, что мне понадобится еще больше кода оболочки для сохранения и восстановления информации о том, какая отрасль я сейчас д.)
Я нашел один (не очень близкий) вопрос: