You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何同时将本地Git分支推送到多远程仓库的不同分支(含GitKraken)

多远程仓库分支推送配置与拉取逻辑说明

一、先修正你的远程配置错误

你当前的git1_git3远程里写错了URL,应该把git2_url换成git1_url,正确配置如下:

[remote "git1_git2"]
    url = git1_url
    url = git2_url
[remote "git1_git3"]
    url = git1_url
    url = git3_url

二、配置分支推送规则(命令行方式)

Git的多URL远程默认会把当前分支推送到所有远程的同名分支,但你需要的是不同分支对应不同远程的特定分支,所以要给每个远程添加push的refspec规则:

1. 配置git1_git2远程:本地master推送到git1:master、git2:master

打开.git/config,在[remote "git1_git2"]下添加:

push = refs/heads/master:refs/heads/master

执行git push git1_git2 master时,就会把本地master推送到git1和git2的master分支。

2. 配置git1_git3远程:本地development推送到git1:development、git3:master

同样在[remote "git1_git3"]下添加:

push = refs/heads/development:refs/heads/development
push = refs/heads/development:refs/heads/master

第一个refspec对应git1的development分支,第二个对应git3的master分支。执行git push git1_git3 development时,就能完成双推送。

三、GitKraken操作步骤(优先方案)

GitKraken支持可视化配置多远程和推送规则,步骤如下:

1. 确认远程仓库已添加

  • 在左侧面板的「Remotes」里,检查git1_git2和git1_git3是否存在(手动修改config后重启GitKraken即可识别)。
  • 如果未添加,点击「Add Remote」,手动输入远程名称和多个URL(添加第一个URL后,点击「Add another URL」添加第二个)。

2. 设置分支的推送目标

  • 对于本地master分支:右键点击分支 → 「Set Push Destination」 → 选择git1_git2远程的master分支。之后推送master时,GitKraken会自动推送到git1和git2的master。
  • 对于本地development分支:右键点击分支 → 「Set Push Destination」 → 需手动配置双推送规则:
    • 先在GitKraken底部的终端面板执行命令:git config remote.git1_git3.push refs/heads/development:refs/heads/development和git config remote.git1_git3.push refs/heads/development:refs/heads/master(和命令行配置一致)。
    • 回到分支右键 → 「Push」 → 选择git1_git3远程,即可一次性推送到git1的development和git3的master。

3. 一键推送操作

  • 切换到master分支,点击顶部的「Push」按钮,选择git1_git2远程,完成双推送。
  • 切换到development分支,点击「Push」按钮,选择git1_git3远程,完成双推送。

四、多URL远程拉取的逻辑

当你从多URL远程拉取时(比如git pull git1_git2 master),只会从该远程配置里的第一个URL拉取数据,其他URL不会参与拉取过程——Git设计多URL远程的核心场景是「多推送」,拉取仍然以主远程(第一个URL)为准。

内容的提问来源于stack exchange,提问作者SwingNoob

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 10:07:58