我有一个git存储库(目前)有三个分支:
head
是稳定版本(不要与git HEAD
混淆)experimental
是实验代码;它应该编译norman
是我的沙箱;其中的代码可能会被破坏“master”git repo位于备份的文件服务器上。但我在本地磁盘,家里的机器和笔记本电脑上都有复制品。 (我准备随时随地编写代码。)
git branch -a
显示:
experimental
head
* norman
tufts/HEAD
tufts/experimental
tufts/head
tufts/norman
Tufts分支是“主”回购的远程分支。本地分支机构应该跟踪; 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
部分是因为对我来说并不是很明显我的工作目录中修改过的文件会发生什么,而这一切都在继续,部分是因为我需要更多的shell代码来保存和恢复有关我目前分支的信息上。)
我找到一个(不是非常密切相关)的问题: