更改每个配置的默认分支 Git Remote

Change the default branch for each configured Git Remote

我知道您可以通过以下方式更改分支的默认远程:

git push -u remote branch

但是我有几个遥控器,我只想能够做到:

git pull remote1 git push remote2

并且每个远程都有一个默认分支(可能相同,但不一定)。

我希望避免每次都做 git pull remote branchgit push remote branch

我当前的配置是这样的:

[branch "main"]
    remote = origin

这只是为我的 'primary' 遥控器执行上述 git push -u ...

Three-way ("triangular") work-flows 在 Git 中并没有得到很好的支持,但是对于某些特殊情况,可以设置 git config push.default 很有用,并且在其他特殊情况下,可以设置 remote.<em>remote</em>.pushurl 有用。

最根本的问题是任何一个分支只能有一个upstream集合; upstream 结合了远程名称和在该远程上找到的分支名称,因此如果分支 B 设置了 upstream U, 运行ning git push 没有参数推送到(单个)分配的远程,使用(单个)分配的名称,git pull 从(相同,单个)分配的远程获取并合并(相同的)单一指定名称。

使用git push -u只是一个简短的说法:在我的git push成功后,请运行 git branch --set-upstream-to也为我。因为这设置了 (one, single) upstream,所以几乎可以肯定这不是你想在这里做的:要么 upstream 已经正确设置,要么你想设置它 before (不是之后) git push 命令。

你的最好可能是停止使用git pushgit pull。而不是那些命令,编写你自己的命令,使用你自己的配置设置来做你想做的任何事情。 运行 那些命令,而不是 git pushgit pull。 (这些命令最终将 运行 Git 命令,甚至可能 git pushgit pull,但具有适当的远程名称和 refspecs。)

否则,请查看 push.defaultpush.defaultRemoteremote 的可用设置。<em>name</em>.push,以及 above-mentioned remote.<em>remote</em>.pushurl 设置,全部在 the git config documentation.