“ git pull –all”可以更新我所有的本地分支吗?

Can “git pull --all” update all my local branches?

本问题已经有最佳答案,请猛点这里访问。

我有一个(目前)三个分支的git存储库:

  • head是稳定版本(请勿与git head混淆)
  • experimental是实验代码;它应该编译
  • norman是我的沙箱;其中的代码可能已损坏

"主" git存储库位于已备份的文件服务器上。但是我在本地磁盘,家用计算机和笔记本电脑上都有副本。 (我准备随时随地编写代码)。

git branch -a显示:

1
2
3
4
5
6
7
  experimental
  head
* norman
  tufts/HEAD
  tufts/experimental
  tufts/head
  tufts/norman

Tufts分支是"主"存储库上的远程分支。当地分支机构应该跟踪; git config -l | grep -w remote说:

1
2
3
4
5
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仅更新当前签出的分支。我想一次更新所有分支。能做到吗

(我不是很疯狂

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

一方面是因为对我来说,这不是很明显,但是在进行所有操作时,工作目录中的已修改文件会发生什么;另一方面,我需要更多的shell代码来保存和恢复有关当前所在分支的信息。)

我发现了一个(不是很相关)的问题:

  • 关于跟踪远程分支