我该如何同时将`git push`提交到两个不同的远程仓库?

4
我的问题最好通过讨论维护一对远程代码库的不同方法来回答,在一个特定的点之前,两个库将保持同步。在那个点之前,我希望从一个单一的权威来源向Lakers和Celtics的两个库都推送代码。
是否有一个简单的语法可以使每个提交更容易,或者它需要自己的过程文件?这是否适用于挂钩应用,如果是,如何构建和管理它(详细程度由您决定,我只是寻找提示)。
我想考虑一下更改的可能性,当每个远程主机进行身份验证更改时,这可能会影响我,例如,因为我的账户更改了,他们无意中生成了一个不同的密钥,并在第一封邮件中放置了账户更改信息,直到我已经推送后才推迟密钥更改消息。简而言之,其他人管理的远程代码库如何使我计划保持初始开发相同变得更加复杂?
我不想制造太多干扰,所以您可以根据自己的时间安排贡献您认为不会花费太多时间的部分。

你真的需要从你的机器同时推送到两个仓库吗?还是这更像是一个镜像设置?顺便说一句,你不能同时推送到 Lakers 和 Celtics,这在 git 源代码中是硬编码的。它会在你的系统上执行 rm -rf /。只是为了好玩! - Juan Guerrero
那个 rm -rf / 命令永远不会过时,是吧? ;) - ernie.cordell
2个回答

6

正如在答案“从多个远程位置拉取/推送”中所解释的那样,您可以为一个远程设置多个url设置:

[remote "origin"]
    url = git@github.com:Lakers/Lakers.git
    url = git@github.com:Celtics/Celtics.git

你可以使用 git config --local --edit 命令在 git 配置文件中设置此选项。
然后你可以执行以下操作:
git push origin master

将代码推送到两个仓库。


抱歉,我错过了另一个话题:也许前面的拉动使我失明了。这实际上意味着我在设置配置文件时自己搞砸了。 - ernie.cordell
@ernie.cordell 最有效的感谢方式是将我的答案标记为已接受;) - Klas Mellbourn
好的,完成了。我相信这是我的第一个问题。通常我喜欢自己解决问题,但这个问题开始困扰我,而且我没有更多时间去解决它了。 - ernie.cordell

1

我认为git push没有提供语法来同时推送到两个不同的远程仓库。不过,编写一个Bash脚本来实现这一点是相当简单的。我认为你还可以在一个远程仓库上编写一个钩子(假设你有权限),它会自动推送到另一个远程仓库。我还没有使用过钩子,所以不知道具体如何操作。


谢谢 - “中继”可能会很聪明。 我得考虑一下,但在某些外部修改后可能不会有害。 虽然我控制了大部分内容,但这似乎是一个好想法(就像很多其他想法一样,但我可以仅为自己配置),但是解决“中继”上的合并/变基问题的想法似乎很可怕。 但你已经回答了我所问的问题,那就是现在该怎么做。 - ernie.cordell

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接