将代码推送到多个原点

时间:2012-10-25 20:52:46

标签: git githooks git-push

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

2 个答案:

答案 0 :(得分: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技巧,并将其推送到我的fork和上游repo。它有助于保持主分支同步,并且不费吹灰之力。

我还在我的基础架构上托管的存储库上使用了一个post-receive挂钩,以便在其他地方镜像它们(比如GitHub)。 post-receive hook看起来像这样:

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

然后我在我的服务器上推送到我的仓库,然后服务器推送到GitHub克隆。您需要确保正确设置了SSH密钥,但除此之外,它非常简单。

答案 1 :(得分:0)

可能会将此添加到您的.git/config

[alias]
push2 = ! git push remote1 && git push remote2