実際にブランチをマージする場合、ただマージしただけではうまくマージできず、場合によってはコードの競合が発生することがあります。
問題を実証するには、新しいブランチ
dev1を作成し
、ターゲット ブランチに切り替えます。
git checkout を使用します。
b dev1 は
、アクションの作成と切り替えを 1 ステップで完了します。例は次のとおりです。
- dev1 ブランチの下のTest ファイルを変更し、ファイルの内容を次のように変更して、次のような送信を行います。
- master ブランチに切り替えて、テスト ファイルの内容を確認します。
スイッチバック後、ファイルの内容が古いバージョンから変更されていることがわかりました。これは正常な現象であり、今では完全に理解できます。
- この時点で、master ブランチで、次のようにテスト ファイルを再度変更して送信します。
- これで、masterブランチとdev1ブランチにそれぞれ新しいコミットが追加され、次のようになります。
- この場合、Git はそれぞれの変更をマージしようとすることしかできませんが、そのようなマージでは、以下に示すように競合が発生する可能性があります。
- テストファイル を入力して、テスト ファイルに競合があることがわかった場合は、ファイルの内容を直接表示できます。ここで言いたいのは、以下に示すように、Git は <<<<<<<, =======, >>>>>>> を使用して、さまざまなブランチの競合する内容をマークするということです。
- この時点で、競合するコードを手動で調整し、修正した結果を再度送信する必要があります。!(再度提出することが重要です、忘れ)
- この時点で競合は解決され、この時点の状態は次のようになります。
- git log にパラメーターを指定してブランチのマージを確認することもできます。詳しくは、 git logの使用方法を自分で検索してください。
- 最後に、dev1 ブランチは使用後に削除できることを忘れないでください。
まとめ
上記は git の競合を解決するための解決策です。要約すると、手動で変更する必要があります。