【问题标题】:git push to different branches on multiple remotesgit push 到多个遥控器上的不同分支
【发布时间】:2013-08-09 10:53:37
【问题描述】:

我有一个本地存储库,我想将它推送到多个远程存储库(firstremotesecondremote)。 这可以通过编辑.git/config 并创建一个带有多个urls 的新remote 来完成。

但另外我想将我的本地分支推送到不同名称的远程分支。例如。将 (mybranch) 推送到 firstremote 上名为 firstbranch 的分支和 secondremote 上的 secondbranch

为此,我不知道如何指定不同的上游分支名称。

注意:我想使用单个 git push 自动推送。

【问题讨论】:

  • 我知道如何将它用于单个上游,但不知道如何为同一分支设置多个
  • 只需创建一个推送到多个遥控器的别名。
  • 是的,我认为这是迄今为止最好的提示。为项目 git config 添加了别名 push-all = !git push firstremote mybranch:firstbranch && git push secondremote mybranch:secondbranch。所以我也使用了@mahead 的单线;)。

标签: git branch push


【解决方案1】:

使用冒号!根据git-push doc

参数的格式是可选的加号+,后跟 source ref ,后跟冒号 :,后跟 destination ref . 用来指定用什么对象 远程存储库中的 ref 将被更新。如果不 指定,命令的行为由控制 push.default 配置变量。

通常是您想要推送的分支的名称,但是 它可以是任意的“SHA-1 表达式”,例如 master~4 或 HEAD (参见 gitrevisions(7))。

告诉远程端的哪个 ref 用这个更新 推。此处不能使用任意表达式,实际的 ref 必须是 命名。如果 : 被省略,相同的 ref 将被更新。

所以,这应该可以解决问题:

`git push firstremote mybranch:firstbranch`
`git push secodremote mybranch:secondbranch`

【讨论】:

  • 是的,我知道这种语法。也许我没有明确提到这一点,但我更愿意使用带有尽可能少选项的单个推送命令来简化工作流程。这不可能吗?
  • 一推是一个遥控器。 A remote can have multiple URLs,因此您可以使用一个命令推送到多个 url,但这并不能解决命名分支的问题,恕我直言,这不值得麻烦。
  • 是的,这就是我在问题中提到的。然后我必须手动完成或编写一个 2-liner ;) 到目前为止谢谢
  • 一行就可以写出来! git push firstremote mybranch:firstbranch && git push secodremote mybranch:secondbranch
猜你喜欢
  • 2016-11-08
  • 1970-01-01
  • 2017-12-20
  • 2018-12-29
  • 2016-01-04
  • 2015-06-22
  • 2018-12-12
  • 2018-06-25
  • 2012-08-01
相关资源
最近更新 更多