Can’t automatically mergeへの対応

pull requestの際に”Can’t automatically merge”というエラーが出ることがあります。以下の方法で修正しなければなりません。

ここではhogeというブランチをmasterというブランチにmergeする場合について書きます。

//merge先のブランチへ切り替える
$ git checkout master
//最新の状態にする
$ git pull
//mergeしたいブランチに切り替える
$ git checkout hoge
//merge先のブランチをmergeする
$ git merge master

この後、どこでエラーが起こっているかをgitが教えてくれるので、それに沿って修正していきます。


<<<<<<< HEAD //hogeでの状態 aaaaa ======= //masterでの状態 bbbbb >>>>>>> master ccccc <<<<<<< HEAD //hogeでの状態 ddddd ======= //masterでの状態 eeeee >>>>>>> master

例えば問題のあるファイルに、gitによって以上のような書き込みが行われたとします。何らかの原因によってこの箇所がエラーを起こしているので修正しなければなりません。

=======で区切られた2つのうち、どちらかを残してどちらかを削除すればいいので今回は該当箇所を以下のように修正してみます。


aaaaa ccccc ddddd

このように修正した後、commitをしてpushをします。すると”Can’t automatically merge”というエラーは表示されなくなっているはずです。

aaaaa

ccccc

ddddd

bbbbb

eeeee

またその後でもう一度以上のような変更を加え、commitとpushを行っても”Can’t automatically merge”は表示されません。