ITGit

Git バイナリファイルでコンフリクトが起きた時の解決法【Cannot merge binary files】

Gitブランチをマージしたときに、バイナリファイルのコンフリクトでエラーを吐きました。

-bash-4.2$ sudo git merge ブランチ名 warning: Cannot merge binary files: ファイル名 (HEAD vs. ブランチ名) Auto-merging ファイル名 CONFLICT (content): Merge conflict in ファイル名

私の場合、zipファイルを入れ替えたところ、コンフリクトを起こしてしまったようです。 この時に仮に、stagingに対し、featureブランチをマージしたいのだとします。 そうした場合、featureでzipファイルを新たな内容に更新しているため、stagingにある過去のzipは破棄して、featureのzipをあげるよう操作します。 そうした場合に便利なコマンドがこちらです。

git checkout --theirs コンフリクトしたファイル名

このコマンドを実行するだけです。 他の部分の競合も確認し、解決しているようなら、

git add --all
git commit -m 'コメント'
git push

としてやるだけで完了です。

関連書籍