コンフリクトの解消方法

参考

コンフリクトの治し方 – Qiita

コンフリクト解消手順 – Qiita

コンフリクト発生!焦らず利用する4つのコマンド – Qiita

Git のマージコンフリクトを解決する方法 | yu8mada

Rails で良くコンフリクトするファイルの対処法 – Qiita

git merge でのコンフリクト (競合) の解決方法まとめ | WWWクリエイターズ

リジェクトやコンフリクトが起きたときどうするか | @IT

コンフリクトが発生しているファイルの一覧を表示する

$ git diff --name-status --diff-filter=U

$ git diff --name-only --diff-filter=U

$ git ls-files -u

$ git ls-files -u | cut -f 2 | sort -u

参考

Git で競合ファイル一覧を楽に見る方法 – Qiita

git checkout --theirs / --ours

参考

Git rebase でコンフリクト時の checkout オプションの --theirs と --ours – Qiita

コンフリクトしたファイルをまとめてチェックアウトする

コンフリクトしているファイルを全て元のファイルにチェックアウトする。

$ git diff --name-only --diff-filter=U -z | xargs -0 git checkout --ours

コンフリクトしているファイルを全てマージ先からチェックアウトする。

$ git diff --name-only --diff-filter=U -z | xargs -0 git checkout --theirs

コンフリクトファイルを全て再生成する。

$ git diff --name-only --diff-filter=U -z | xargs -0 git checkout --conflict=merge

参考

マージ時のコンフリクトで片側の変更だけ適用する方法 – Qiita

How to cope with spaces in file names when iterating results from git diff --name-only – Stack Overflow

Using git diff with xargs -0, spaces in file names – Super User

git pull でコンフリクトが発生した場合

参考

git pull とかでコンフリクトが起こったときの対処 | Mattari Memo

プルリクエストでコンフリクトが発生した場合

参考

プルリクエストでコンフリクトが発生した場合の対応 – Qiita

ひとり Pull Request その少し先へ | sci (sci.hateblo.jp)

プルリクした時にコンフリクトした場合の対応方法 | Koushi Kagawa

プルリクエストでコンフリクトしたときの対処方法 | Laravel 学習帳 (laraweb.net)

マージ元で削除したファイルがマージ先で修正されている場合

参考

How do I fix a merge conflict due to removal of a file in a branch? – Stack Overflow

バイナリファイルのコンフリクト

バイナリファイルがコンフリクトした場合、マーカーを挟んだコンフリクトマージファイルは生成されず、単にマージ前のファイルがそのままになっている。

マージ出来なかった旨の警告が表示される。

warning: Cannot merge binary files: ... (ours vs. theirs)

マージ先のファイルに置き換えたい場合は、--theirs オプションを付けてチェックアウトする。

$ git checkout --theirs path/to/conflicted_binary.ext

参考

マージでバイナリファイルがコンフリクトした場合の Git の動作と対処方法 | アインシュタインの電話番号

バイナリファイルでコンフリクトが起きた時の解決法 | エンジニアの階段

Resolving a Git conflict with binary files – Stack Overflow

Tips

参考

Git のコンフリクトを解決する 14 のヒントとツール | Atlassian Blogs

高度なマージ手法 | Pro Git Book [Official]

記事をシェアする:
タグ:

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です