たとえば、とあるファイルはログみたいなもので、更新の際には新しい内容をファイルの末尾に追記することによって記述されていくものだとします。

B というブランチと、C というブランチが、このファイルに対して別々の内容を追記したとします。そして、それぞれのブランチが変更するファイルは、このファイルだけだとします。

これらをマージする際には、この末尾の追記内容に対してエラーが発生しますが、解決方法としては、どちらの追記内容が先に来てもいいから、両方ともの内容が追記された状態にマージしてほしいです。手動でこれを行う場合には問題ないですが、スクリプトで処理するにあたっては、このマージ方法を git-merge の中で実行してほしいです。

自分の知る限り、これを実現するマージストラテジーは存在していないと思っています。なので、独自ストラテジーでこれを定義できたらいいなと考えました。

質問:

  • git で、独自マージストラテジーを定義するにはどうしたらいいですか?