21

我有一个带有(目前)三个分支的 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 代码来保存和恢复有关我当前所在分支的信息。)

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

4

0 回答 0