作为这个答案的补充,我正在寻找一种方法来更新我的克隆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
上游
.