備忘録として、アウトプットしてみた。
#1.競合ファイルを確認する
ターミナル上で、git statusコマンドを実行して、競合が生じているファイルを確認する。競合が生じているファイルは赤字表記がされる。
https://gyazo.com/ad9ee414593d8a739455402c8cd4936c
競合が生じたファイルをテキストエディタで確認する。自分が使用しているテキストエディタは、VScodeである。VScodeであれば、以下の画像のように競合しているファイルが紫色に変化する。
https://gyazo.com/06d02b171185531b9ba5f260cd43b435
#2.エディタ上で確認する
エディタ上でコードを確認すると、以下のような記載が
なされている。※例えば、今回ではuploaders/image_uploader.rbというファイルのコードをみてみる
class ImageUploader < CarrierWave::Uploader::Base
storage :file
def store_dir
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
include CarrierWave::MiniMagick
<<<<<<< HEAD
process resize_to_fit: [400, 400]
=======
process resize_to_fit: [800, 800]
>>>>>>> fb3b055... git commit --allow-empty -m "first commit"
end
<<<<<<< HEADとは現在のコミットを指しており、>>>>>>>はリモートリポジトリのmsaterブランチを指している。そして、=======はこれで区切られた上と下の記述が競合しているということを意味している。
VScode上であれば、<<<<<<< HEAD部分が緑色で、>>>>>>>部分は青色で表記される。
#3.競合箇所を修正する
修正方法としては、2つある。
1.不要な方のコードの記述を削除する
2.両方とも残す
必修正方法のいずれを選択しても、必ず<<<<<<< HEADと>>>>>>> と=======の記述は必ず消すこと。
class ImageUploader < CarrierWave::Uploader::Base
storage :file
def store_dir
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
include CarrierWave::MiniMagick
process resize_to_fit: [400, 400]
end
今回は、>>>>>>> の部分がふようであったので、その部分を削除した。
#4.競合解決をコミット
次に、ターミナル上で競合を解決した内容を以下のコマンドを実行する。
$ git add .
このコマンドで、競合解決したファイルをまとめて処理できる。
以上の作業で競合を解決できたので、GitHub Desktopにおいてコミットメッセージを送り、コミットする。
#5.ブランチをマージする(競合解決の終了)。
コミットできたら、リモートにプッシュして、リモートのGitHubに移動して(コマンド+Rで移動できる)、プルリクエストを確認してマージする。
マージの際の画面表記は以下のようになる。
https://gyazo.com/80ce0517a2bfff626a9a55b2c54b579b
以上で、競合解決の手順が終了する。
自分の手順において、何か指摘点や改善点等がありましたら、遠慮なくご指摘いただければ、と思います。
以上