[Git] git merge で conflict したファイルをどちらか一方のブランチの内容で更新する方法
CLI と SourceTree のそれぞれでの対応。
## CLI でコンフリクトを解決する
> git checkout コマンドには –ours や –theirs オプションを指定することもできます。これを使うと、何かをマージする代わりに、どちらか一方を選択して簡単にチェックアウトできます。 これは、バイナリデータのコンフリクトを解消するとき(使いたい方を選べばよい)や、他のブランチから特定のファイルを取り込みたいときに便利でしょう。後者であれば、マージコマンドを実行してから該当のファイルを –ours か –theirs を指定してチェックアウトし、コミットしてください。
>
> [Git – 高度なマージ手法](https://git-scm.com/book/ja/v2/Git-%E3%81%AE%E3%81%95%E3%81%BE%E3%81%96%E3%81%BE%E3%81%AA%E3%83%84%E3%83%BC%E3%83%AB-%E9%AB%98%E5%BA%A6%E3%81%AA%E3%83%9E%E3%83%BC%E3%82%B8%E6%89%8B%E6%B3%95)
今いるブランチが `–ours` でマージしようとしているブランチが `–theirs` となります。
“`prettyprinted
% git checkout –theirs .
Updated 1 path from the index
“`
後はいつも通り `git add` `git commit` を行います。
“`prettyprinted
% git add .
% git commit
“`
上述のようにパスを指定できるので、ファイル単位やディレクトリ一括指定も可能です。
> – [How to do ‘git checkout –theirs’ for multiple files (or all unmerged files) – Stack Overflow](https://stackoverflow.com/questions/24916186/how-to-do-git-checkout-theirs-for-multiple-files-or-all-unmerged-files)
## SourceTree でコンフリクトを解決する
コンフリクトが起きているファイルを選択し、右クリックをすると「 競合を解決」メニューが表示されます。