2

我想做一个git push,并且应该将更改推送到两个不同的来源。有没有办法用 git 的一个命令推送到多个来源?也许是一个不错的钩子?

4

2 回答 2

2

我使用了两种方法来做到这一点。当我有一个分叉存储库和一个上游远程时,我发现一种方便的方法是使用远程pushurl上的配置选项。对于起源,它看起来像这样:

[remote "origin"]
    url = git@github.com:user/repo.git
    pushurl = git@github.com:user/repo.git
    pushurl = git@github.com:me/repo.git
    fetch = +refs/heads/*:refs/remotes/origin/*

在分叉存储库的情况下,我使用远程pushurl中的技巧upstream,并将其推送到我的分叉和上游存储库。它有助于使主分支保持同步而不必大惊小怪。

我还在我的基础架构上托管的存储库上使用了接收后挂钩,以将它们镜像到其他地方(如 GitHub)。post-receive 钩子如下所示:

nohup git push --mirror git@github.com:user/repo.git &> ~/.mirror.log

然后我推送到我的服务器上的仓库,然后服务器推送到 GitHub 克隆。您需要确保正确设置了 SSH 密钥,但除此之外,这很容易。

于 2012-10-25T23:12:35.147 回答
0

也许将此添加到您的.git/config

[alias]
push2 = ! git push remote1 && git push remote2
于 2012-10-25T20:58:33.533 回答