2

新しいプロジェクトに使用できる基本セットアップ用のリポジトリを作成しました。この基本的なセットアップは「進行中」であるため、これに関する開発は進行中です。新しいプロジェクトがある場合は、基本的なセットアップを使用して使用したいと考えています。新しいプロジェクトは、基本セットアップ内のモジュールです。

基本的なセットアップが開発されているため、更新を他のリポジトリにプッシュしたいと考えています。Git でこれを行うにはどうすればよいでしょうか。

Gitslave で何かを読みました。これでいいですか? http://gitslave.sourceforge.net/

4

2 に答える 2

2

Gitslaveは、複数のリポジトリで同じコマンドを実行する場合に使用されます。この場合の唯一の適用可能性は、スーパープロジェクト(基本的なリポジトリから、場合によっては別のリポジトリから)を作成し、すべてのプロジェクトリポジトリを子として持っている場合です。次に、1つのコマンドで、基本リポジトリを指すすべてのスレーブリポジトリにリモートを追加し、すべてのスレーブリポジトリの基本ブランチをチェックアウトしてから、変更を各スレーブリポジトリにプルし、最後に基本リポジトリをマージ/リベースできます。 -プロジェクトブランチ(マスターなど)に分岐します。競合を解決したら、各プロジェクトリポジトリプッシュできます。

これは、変更を他のリポジトリにプッシュするのとは逆ですが、マージプロセスも自動化できるため、おそらくはるかに便利です。

元の要望とより一貫性のある別のアプローチは、プッシュの「すべて」のターゲットを追加することです。これにより、同じコマンドで基本ブランチが複数のリポジトリにプッシュされます。 http://jeetworks.org/node/22

ただし、適切な分岐戦略を立てるには、すべての状況で「基本分岐」の概念が必要であることに注意してください。具体的には、プロジェクトブランチをbasic-branchから分岐して、basic-branchへの更新をでマージまたはリベースできるようにする必要があります。

さらに別のオプションは、それらすべてを統治する1つのリポジトリを持ち、プロジェクトごとに1つのブランチを作成することです。次に、basic-branchへの変更を他のすべての適切なブランチにマージするための自動化を作成する必要があります。ニーズ、セキュリティ、プロジェクトが互いにどれだけ離れているか、またはプロジェクト固有の問題がどれだけあるかに応じて、これは意味がある場合とない場合があります。

于 2012-03-15T16:04:16.723 に答える
1

ここでは、サブモジュールやスレーブは適切ではないと思います。
別のレポのコンテンツを含むサブディレクトリが必要ない場合、レポの (更新された) コンテンツを基本的なプロジェクト構造とマージしたい場合。

各プロジェクト リポジトリがその ' basic' リポジトリをリモート ( ) として追加し、そのリポジトリをローカル ブランチ (たとえば 'basic-br' という名前git remote add basic /path/to/basic/repo) にプルしてから、そのブランチを現在のブランチにマージすると、より簡単になります。basic

そうすれば、リポジトリを定期的にフェッチまたはプルし、必要に応じてブランチbasicをマージできます。basic-br

于 2012-03-15T10:11:54.023 に答える