Gitで大雑把にConflict解消
こんにちは。
Gitのコンフリクトの解消方法毎回忘れるのでメモしておきます。エディタで修正するのは手間でしたので・・・
$ git checkout --ours filepath # 変更しない $ git checkout --theirs filepath # マージ先のファイルで上書き $ git checkout -m filepath # よくわからなくなったので、コンフリクトが発生した直後の状態に戻す
まとめ
コンフリクトのdiff
が読みにくすぎてやばいです。<<<<<<< HEAD
にHEAD
とか書いてありますがだいたい文字とか見るの面倒なので、diffの囲み(<<<<<<< ... ======= ... >>>>>>>)の中にあるやつは上にあるのが僕らの、下にあるのが奴らのと覚えてます。
<<<<<<< ours(僕らの) ======= theirs(奴らの) >>>>>>>
よくわからなくなったらgit checkout -m .
でやり直しちゃえばいいかなと思います。
あと、個別のファイルに対して変更するかしないかを判断するのはかなりきついな。。。という感想を持ちました。
願わくばコンフリクトが起きない方がいいですが、コンフリクト恐れすぎるのも良くないので、mergetool
とか駆使していきたいです。(Gitはいくらでもやり直しがきくのでやってみてから考えるでいいかと思います)