gitで双方向mergeしたときに起こった問題を再現

gitで双方向にmergeしてるとひどいはまり方をするときがある件 - はこべブログ ♨でごちゃごちゃ言っていた状況を再現するコードを書いてみた.

実行すると,カレントディレクトリにmerge_testというリポジトリに,問題になっている状況を再現する.だいたいコメントに書いてあるます


merge_test.sh · GitHub

研究室の友達といろいろ議論した結果,結局,gitがなにか悪さをしているとかではなくて,ブランチをどう運用するかが問題なんだろうということで落ち着いた.

いったんexperimentalにmasterをmergeするとmasterで行われた変更がexperimentalに含まれることになる.その後,masterにexperimentalをmergeするときには,master関する衝突とexperimentalに関する衝突の解消の両方をする必要がでてくる可能性がある.

masterの変更の知識がない人がこの衝突の解消をしようとすると,身に覚えのない変更を追いかける必要がでたりしてたいへん,バグも入り込みやすいということになるんではないだろうか.

てか,gitあんまり関係ないはなしになっとる….