2

git pushを実行したいのですが、変更は 2 つの異なるオリジンにプッシュする必要があります。gitで1つのコマンドで複数のオリジンにプッシュする方法はありますか? 多分いいフック?

4

2 に答える 2

2

これを行うために2つの方法を使用しました。フォークされたリポジトリと上流のリモートがある場合に便利な方法の 1 つは、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、フォークとアップストリーム リポジトリの両方にプッシュします。これは、マスター ブランチの同期を簡単に維持するのに役立ちます。

また、インフラストラクチャでホストしているリポジトリで post-receive フックを使用して、それらを別の場所 (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 に答える