ushumpei’s blog

生活で気になったことを随時調べて書いていきます。

Gitで大雑把にConflict解消

こんにちは。

Gitのコンフリクトの解消方法毎回忘れるのでメモしておきます。エディタで修正するのは手間でしたので・・・

$ git checkout --ours filepath   # 変更しない
$ git checkout --theirs filepath # マージ先のファイルで上書き
$ git checkout -m filepath       # よくわからなくなったので、コンフリクトが発生した直後の状態に戻す

まとめ

コンフリクトのdiffが読みにくすぎてやばいです。<<<<<<< HEADHEADとか書いてありますがだいたい文字とか見るの面倒なので、diffの囲み(<<<<<<< ... ======= ... >>>>>>>)の中にあるやつは上にあるのが僕らの、下にあるのが奴らのと覚えてます。

<<<<<<<
  ours(僕らの)
=======
  theirs(奴らの)
>>>>>>>

よくわからなくなったらgit checkout -m .でやり直しちゃえばいいかなと思います。

あと、個別のファイルに対して変更するかしないかを判断するのはかなりきついな。。。という感想を持ちました。

願わくばコンフリクトが起きない方がいいですが、コンフリクト恐れすぎるのも良くないので、mergetoolとか駆使していきたいです。(Gitはいくらでもやり直しがきくのでやってみてから考えるでいいかと思います)

参考: Gitコンフリクト解消ガイド(git mergetoolの使い方)