作为这个答案的补充,我正在寻找一种方法来更新我的克隆repo的所有远程分支(
   
   
   )从
   
    上游
   
   一气呵成。我就是这样做的。
  
  
   
    上游
   
   远程指向源存储库(其中
   
   
   从中派生)并已将其与
   
    git fetch upstream
   
   .
  
  
   然后运行:
  
  for branch in $(git ls-remote --heads upstream|sed 's#^.*refs/heads/##'); do git push origin refs/remotes/upstream/$branch:refs/heads/$branch; done
  
   此命令的第一部分列出
   
    上游
   
   
    refs/heads/
   
   分支名称前缀。
  
  
   然后,对于每个分支,它都会推送
   
    上游
   
   远程跟踪分支(
   
    refs/remotes/upstream/<branch>
   
   在本地端)直接到上的远程分支
   
    起源
   
   (
   
    refs/heads/<branch>
   
   在远端)。
  
  
   这些分支同步命令中的任何一个都可能失败,原因有二:或者
   
   
   分支已被重写,或者您已将该分支上的提交推送到您的分支上。在第一种情况下,如果你没有把任何东西放在叉子上的树枝上,用力推是安全的(加上
   
    -f型
   
   开关;即。
   
    git push -f
   
   
    上游
   
   .