0

複数のリモートをgitリポジトリのベアコピーと同期させようとしています。これにより、開発者が1つのリモートでブランチを追加または更新した場合、変更によって他のリモートにもブランチが追加されます。例を挙げます:

開発者Aは、新しいブランチ「test-dev」を元の場所にプッシュします。開発者B(私)は、開発者Aのオリジンに対応する私の「ローカル」リモートからすべてをフェッチし、gitは新しいtest-devブランチを通知します。test-devを手動で「ネットワーク」リモートにプッシュするには、ブランチをチェックアウトしてからプッシュするか、gitを呼び出すときにrefspecを渡すことができます。

git push network local/test-dev:refs/heads/test-dev

test-devブランチは、私が「ネットワーク」と呼んでいるリモートから誰かがプル/フェッチ/クローンを作成したときに表示されるようになりました。1時間後、開発者Aはいくつかの重要な変更をtest-devにプッシュします。次に、変更をフェッチしてマージ(またはプル)してから、変更をチェックアウトするか、refspecを使用して、以前と同じ方法で更新された変更をネットワークにプッシュできます。

このプロセスを自動化する方法はありますか?新しいブランチが表示されたら、または既存のブランチに変更が加えられたら、指定したリモートからこの新しい情報をフェッチする簡単なコマンドと、それを他のすべてのリモートにプッシュする2番目のコマンドが必要です。スクリプト化する必要がある場合はそうですが、表示されていない既存のgitコマンドに渡すことができるパラメーターがあることを期待しています。

4

1 に答える 1

1

このプロセスを自動化する方法はありますか?

はい、あります。これは、フックと呼ばれるGitの機能です。

post-receiveここにリンクされているページを読んで、それらの感触をつかむ必要があります。他のサーバーの正規参照として使用するサーバーにフックを実装することをお伝えします。人々が複数のサーバーにプッシュできる場合は、それらにもフックを実装する必要があります。

于 2013-03-18T16:09:46.430 に答える