Git Extensionsでおこなう、こわくないマージ
Git Extensionsでマージ作業をしてみます。一部画面はまだ現在のリリース版のGit Extensions 2.43とは異なることがあります。
まっすぐなリポジトリの準備
まずは図に示すような、README.mdファイル一個、masterブランチ一個しかないまっすぐなリポジトリを準備してみます。
testブランチの作成
まだ何もコミットしていないのでmasterブランチとtestブランチの内容は同一です。
testブランチへのコミット
README.mdを以下のように編集してtestブランチにコミットします。
# Testing
testing repository
## Hello Git!
Hello, Git world!
masterブランチへのコミット
README.mdを以下のように編集してmasterブランチにコミットします。
# Testing
testing repository
## Hello Git
Hello, git world!
これでmasterブランチとtestブランチで内容が別れてしまいました。
testブランチのマージ
現在いるmasterブランチに、testブランチをマージします。
現在のブランチ: master、マージ対象: testとしてマージします。
どちらのブランチもREADME.mdを変更しているため、競合 (CONFLICT) が発生してしまいましたが落ち着いて「OK」を押しましょう。
「マージ競合の解決をしますか?」と聞かれます。「はい」を押すとKDiff3を使ったマージツールが起動するのですがいまいち使いやすくないので、ここは「いいえ」を押してください。
マージ作業
現在マージ作業中である警告がダイアログ右下に表示されているはずです。ここからエディタなどを用いて手作業でマージをおこなっていきましょう。
README.mdが以下のような状態になっています。
# Testing
testing repository
<<<<<<< HEAD
## Hello Git
Hello, git world!
=======
## Hello Git!
Hello, Git world!
>>>>>>> test
これは<<<<<<< HEAD
と=======
に囲まれる部分がHEAD (現在のブランチ = master) の変更、
=======
と>>>>>>> test
に囲まれる部分がtestブランチの変更であるという意味です。
両方の変更を取り込み以下のように編集します。
# Testing
testing repository
## Hello Git
Hello, Git world!
無事testブランチの内容がmasterブランチにマージされました。
コミットのグラフも「ここでマージしたよ」というのがわかりやすい表示になっていて、嬉しいですね。
Tips
コミット画面から「ファイルの履歴」などを選ぶと、そのファイルに関連する変更を確認できてマージの参考になります。是非役立たせてください。
選択して、
各コミットの変更を確認したり。