1

github でホストされているオープン ソース ライブラリを使用しています。自分の仕事にマージしたい
成熟したブランチがあります。branchA

メンテナーはおそらく近い将来、ブランチを自分のマスター (私にとっては上流/マスター) ブランチにもマージするでしょう。

自分でブランチをローカルマスターにマージしてもいいのだろうか。将来
マージしたアップストリーム/マスターをマージすると、大規模なマージ競合が発生しませんか?branchA

  • 編集

アップストリーム/ブランチAからローカル/ブランチAを作成し、それに変更を加えてローカル/マスターにマージするのはどうですか?

アップストリーム/マスターでマージするときは、後で同様に問題ありませんか?

4

3 に答える 3

0

マージの「問題」が発生するかどうかは、所有者が にマージする前に上流のマスターで何が起こるかによって異なりますbranchA

ただし、何が起こっbranchAても、アップストリーム マスターにマージされると、ローカル コピーで次のコマンドを実行するだけで「最新」になります。

git checkout master
git fetch upstream
git reset --hard upstream/master

この組み合わせにより、 のローカル コピーがmasterのアップストリーム コピーと同じコミットを指すようになりますmaster。所有者がアップストリームにマージされたにこれを行うため、ローカルには によって導入された変更が事実上残っています。branchAmastermasterbranchA

アップデート

branchAにマージする前に に変更を加えたい場合はmaster、 に基づいて独自のブランチを作成し、そこで変更を加えることをお勧めしますbranchA。それが完了したら、私の元の提案に従うことができます。ローカルのカスタム ブランチを保持している限り、更新されたアップストリームに対してリセットするときに変更を利用masterできるため、マージすることができます。これらの変更は、リセット後にローカル マスターに反映されます。

masterおまけとして、変更が一般的に役立つ場合 (つまり、状況に固有のものではない場合) は、プル リクエストをアップストリームに送信し、場合によっては、独自の変更をアップストリームにマージして終了することができますbranchA

于 2013-06-07T01:59:29.400 に答える
0

いいえ、まったく問題ありません。git は、説明したシナリオを処理するのに十分スマートです。

git が別のブランチからのコミットをマージしようとすると、現在のブランチとマージされるブランチが分岐した共通の祖先が見つかり、現在のブランチとマージされるブランチの両方がすでにヘッドを移動していることがわかります。より共通の祖先に近いため、マージする前に競合を引き起こす変更を導入しないと、おそらく早送りできますupstream/master

于 2013-06-07T02:00:05.073 に答える
0

いずれにせよ、それらを解決する必要があります。git mergetoolは素晴らしいので、それほど難しくありません。

于 2013-06-07T02:00:06.867 に答える