有没有办法同时推送到多个远程Git分支?

时间:2016-05-17 18:05:48

标签: git git-push

在我当地的回购邮件.git/config我有

[remote "public"]
        url = https://github.com/rax/somerepo.git
        fetch = +refs/heads/*:refs/remotes/public/*
[branch "master"]
        remote = public
        merge = refs/heads/master
[remote "amazon"]
        url = ssh://ubuntu@ecXXXXXXXXX.us-west-2.compute.amazonaws.com/home/ubuntu/somebarerepo.git
        fetch = +refs/heads/*:refs/remotes/amazon/*
[remote "all"]
        url = https://github.com/rax/somerepo.git
        url = ssh://ubuntu@ecXXXXXXXXX.us-west-2.compute.amazonaws.com/home/ubuntu/somebarerepo.git

当我git push all时,我成功地将最新提交推送到amazonpublic遥控器;但远程分支不跟踪。例如,如果推送时public落后,即使内容现在是最新的,分支仍然显示为落后。

有没有办法同时推送到多个远程分支?

1 个答案:

答案 0 :(得分:1)

简短的回答是你可以做到。

形成git版本2.0,默认行为已更改,因此您必须设置' push.default'到期望值(在您的情况下匹配)

这是git v2.0发行说明,它解释了git处理推送方式的变化(简单与匹配)。这已在git v2.0中更新,以修复默认的git push行为。

在git v2.0执行git push之前,它会推送所有已更改的分支(所有,而不仅仅是当前分支)。

  

Git v2.0发行说明

     

向后兼容性说明

     

git push [$there]没有说要推送什么时,我们已经使用了   到目前为止传统的 matching 语义(所有分支都已发送   只要已经存在同名分支,就可以到远程控制台   在那边)。在Git 2.0中,默认值现在是simple语义,   推动:

     
      
  • 只有当前分支到同名的分支,并且只有   当前分支设置为与该远程集成时   分支,如果你正在推送到同一个遥控器;或

  •   
  • 只有当前分支到具有相同名称的分支,如果您   正在推送到一个不是你常去的地方的遥控器。

  •   
     

您可以使用配置变量push.default进行更改   这个。如果你是一个想要继续使用的老人   matching语义,您可以将变量设置为matching   例。阅读文档以了解其他可能性。强文