GitHub: 現在の変更を受け入れることと、受信する変更の違い 質問する

GitHub: 現在の変更を受け入れることと、受信する変更の違い 質問する

コードが競合すると問題が発生します。

VSCode マージ解決

上の画像を見ると、4つのオプションがあることがわかります。

  1. 受信した変更を受け入れる
  2. 現在の変更を受け入れる
  3. 両方の変更を承認
  4. 変更を比較する

Accept Current changesとの違いを知りたいAccept Incoming changes

ベストアンサー1

操作の種類によって異なります(マージまたはリベース) が原因で競合が発生します。Git
で競合を解決しようとする場合、通常は次の 2 つの変更セットを扱います。

  1. 現在のブランチからの変更: 多くの場合、現在作業中またはチェックアウトしたブランチです。説明では、これは「持っているもの」または「マージ先」と表現されます。

  2. 受信ブランチからの変更: 現在のブランチにマージしようとしているブランチ (マージ中)、または別のブランチの上に適用しようとしているブランチ (リベース中)。これが「マージ対象」または「マージのソース」です。

さて、VSCode の競合解決オプションのコンテキストでは、次のようになります。

  • 受信した変更を承認: これにより、現在のブランチ ("現在持っているもの") からの競合する変更が破棄され、受信ブランチ ("マージしたもの") からの変更が保持されます。

  • 現在の変更を受け入れる: これにより、現在のブランチ ("現在持っているもの") からの競合する変更が保持され、受信ブランチ ("マージしたもの") からの変更が破棄されます。

理解しておくことは重要です中にリベース「現在のブランチ」と「受信ブランチ」の役割は本質的に逆になります。リベースでは、現在のブランチが新しいブランチの上に適用されます。そのため、競合が発生した場合は、次のようになります。

  • 現在の変更リベース中の「 」は、リベース先のブランチ(通常はベース ブランチ)を参照します。
  • 今後の変更リベース中の「 」は、リベースしようとしているブランチ(別のブランチに適用しようとしている変更)を参照します。

おすすめ記事