5

私は別のプロジェクトの軌跡をたどり、元のプロジェクトに直接ではなく、自分のものを追加するシステムを開発しています。3つのリモートブランチを使用してリポジトリを設定します。

  1. マスター-私の開発が行われる場所。
  2. ベンダー-元のプロジェクトと定期的に同期する場所。
  3. 統合-(マスター)と(ベンダー)を一緒にマージしたい場所。

私のワークフローのアイデアは、同期が自動的に行われ(基本的には早送りであるため)、統合は半分手動で行われることです(マージと修正が必要なため)。最初の部分(同期)については説明しましたが、マスターとベンダーを統合に統合するために実際に発行するコマンドがわかりません。

これはgitbranch-aの出力です:

* integration
  master
  vendor
  remotes/origin/HEAD -> origin/master
  remotes/origin/integration
  remotes/origin/master
  remotes/origin/vendor

この時点から次のように進むにはどうすればよいですか。

  1. このワークスペースをリモートリポジトリと同期しますか?
  2. ベンダーとマスターを統合に統合しますか?
  3. 統合をリモートリポジトリにプッシュバックしますか?

そして明らかに、ワークフローに何か問題がある場合は、それを聞きたいと思います。

4

1 に答える 1

2

integrationブランチは厳密には必要ではありませんが(上にリベースすることで、に直接統合できます)、便利vendorな場合があります。mastermastervendor

Aブランチをブランチに統合するには、次のB方法があります。

  • マージイン(ただしAB現在の開発はB、マージの競合が解決され、すべてのテストが再実行されるまで「保留」になっていることを意味します)
  • ()Bの上にリベースしますが、それはの履歴を変更します。Agit rebase AB

integration私はその上にリベースし、そこで競合を解決してから、履歴を線形に保ちながらVendorマージintegrationします。mastermaster

于 2011-10-31T06:51:46.070 に答える