0

次のブランチがあります。

master
featureA
featureB

複数の git リポジトリで。開発は 3 つのブランチすべてで同時に行われます。featureAfeatureBにマージし、最後にfeatureBmasterにマージする必要があります。現在私は:

featureB に切り替えて、featureAからマージしますmasterに切り替えて、 featureBからマージします。この手順には 2 つのスイッチが含まれます。約 7 つのリポジトリに対して実行する必要があるため、時間がかかります。

git を使用してこれを行うより良い方法はありますか?

4

6 に答える 6

1

7 つのリポジトリのそれぞれで 2 つの手順を実行する必要があります。各レポで必要な git コマンドを実行するシェル スクリプトを作成するのは良い例のように思えます。リポジトリが分離されている限り、git 自体はあまり役に立たないと思います。「サブモジュール」を介してそれらを接続することも検討できます(ただし、ここで役立つかどうかは正確にはわかりません)。

于 2013-04-14T11:25:35.323 に答える
1

これは少し異常に聞こえます。6 人か 7 人の開発者全員が featureA または featureB に取り組んでいる場合、それらは既に互いに同期されているはずです。つまり、開発の過程で、それらは互いに、または指定された中央リポジトリを介して間接的にプッシュ/プルしていました。これは、機能を開発するときにそれらがどのように連携するかです。

このシナリオでは、次のことだけが残ります。

# your 4 steps
git checkout featureB
git merge featureA
git checkout master
git merge featureB

この後、各開発者はマスターをプルし、featureA と featureB を削除するか、単に放棄することができます。

各開発者がマスターから新しい機能ブランチを作成することで開発が進行します

于 2013-04-14T12:12:59.867 に答える
0

次のコマンドを実行してみてください。

  • git チェックアウト マスター
  • git マージ機能 A 機能 B

必要なすべてのブランチをワンステップでマージできます。マージのチェーンを作成するだけです:

  • gitマージabcde

現在のブランチでブランチa、b、c、d、およびeをマージします。

テーマの 1 つが競合を引き起こす場合、マージは失敗します。明らかに。

于 2017-05-29T00:29:30.800 に答える