一部のファイルとディレクトリが削除されたマスターブランチの正確なコピーである特別なブランチ (リリースブランチ) があります。このブランチでは開発は行われていませんが、マスターと同期している必要があるため、マスターの更新は常にそのブランチにプッシュする必要があります。
通常のマージ ( git merge master
) を実行すると、常に次のような競合が発生します (サンプルの README ファイルなど)。
CONFLICT (delete/modify): README deleted in HEAD and modified in master
これは予想されることです: 削除したファイルの変更をマージしようとしました。したがって、それらを解決するには、 を使用しますgit rm README
。
それを自動化するために、 -X ours を指定することで自動競合解決を使用できると思いました。manページは、それが私にとって正しいことを示唆しています:
This option forces conflicting hunks to be auto-resolved cleanly by favoring our version. Changes from the other tree that do not conflict with our side are reflected to the
merge result.
ただし、git merge -s recursive -X ours master
そうすると、同じ未解決の削除/変更の競合が発生します。私は何を間違っていますか?競合解決を自動化する別の方法はありますか?