私は異なるpush
構成のリモコンをいくつか持っています。例えば異なる設定で複数のgitリポジトリにプッシュするにはどうすればいいですか?
[remote "public"]
url = ssh://external-server/repo
push = refs/heads/master:refs/heads/master
[remote "internal"]
url = ssh://internal-server/repo
push = refs/heads/*:refs/heads/*
レイヤーを追加することなく、単一の単純なコマンドで両方のリポジトリにプッシュすることは可能ですか?
私はpushUrl
を関連する質問で示唆したように試みましたが、これはURLを予期し、リモートを許可しません。その後、私は
[remote "all"]
pushUrl = "ext::git push public"
pushUrl = "ext::git push internal"
に似git-remote-ext
を使用するように変更されしかし、これは最初のリポジトリにプッシュし、
fatal: Could not read from remote repository.
マニュアルシェルコマンド(git push public && git push internal
)で、その後失敗するため、私は現実には解決策ではありませんリモート(例えば、顧客、公共リポジトリ、内外のミラー、テストシステム、読み取り専用ソースがホストするgitサーバ)の異なるセットを持っている多くのリポジトリを持っています。時には彼らは
git submodule foreach 'git push all'
のような私が邪魔にプッシュするサブモジュールに別名を定義すると、動作しますが、あまりにも不器用で、何とか(物事をプッシュするgit push
を使用して)通常のワークフローを壊すかもしれませんしています。
、どのように、ここでは異なる 'push'セットアップを指定するのですか?例えば。私は内部のサーバ上のすべてのブランチを望んでいますが、外部のものには 'master'しかありません。 – ensc
@enscわからない。私はpush.policy(編集の回答)に行くだろうが、あなたはそれをテストし、どのブランチがプッシュされるのを見る必要があります(実際の内部と外部のリモートではなくダミーのリモートを使用してください: – VonC
hacky)。 ...内部リポジトリへの '-next'ブランチの強制プッシュをどのように表現しますか(' push = + refs/heads/next:refs/heads/next'')? – ensc