请教个git使用的问题: 有没有简单的方法可以把本地所有分支的上游统一切换成另外一个?

比如有的工程有七八个分支, 一个个切起来挺麻烦

另外, 从一个非当前跟踪的上游pull的时候, 需要输入分支名称, 怎么让它自动拉取到当前的同名分支? 明明分支名称都是一样的, 非要输入分支名称才行

比如git push --all remote用起来就比较爽, 一键推送所有同名分支到指定远端, 但是拉取好像就没有这么方便的方法, 比如不能git pull --all remote

在 .git/config 文件中修改 branch 节点下面的 remote.

[branch "main"]
	remote = upstream
	pushRemote = origin
	merge = refs/heads/main

这个看上去要在配置文件里修改每个分支的配置? 有点麻烦.

query-replace一下就行了,有什么麻烦的?

一方面我是要在脚本里面操作, 就是几十个仓库批量操作

另一方面, 我记得仓库里的.git/config文件好像不一定每个分支都有一个这样的字段, 分支的remote会受好几个配置影响(三四个配置), 几个配置有不同的优先级, 有点复杂

可以用git config命令来修改你说的字段, 这个字段是最高优先级的, 不存在会添加

我可以在脚本里面遍历所有分支, 把每个分支都用git config branch.xxx.remote foo修改一遍, 这样最保险