先日、作成した動画を基に、内輪での説明会を行ったんですが、よくよく考えると、Conflict解消のシナリオも幾つかあるなぁ。なんて思ったりしました。
具体的には、
- GitはConflictを検知しないが、実際は、
コードレベルのConflict(不整合)が発生しているケース。
- Gitが検知した部分のConflictのみ解決したケース。
- 上記の1, 2 の合わせ技で、
Gitが検知した部分のConflictのみ解決したが、他の部分で、
コードレベルのConflict(不整合)が発生しているケース。
などがありそうです。
(他にもあるかもしれない)
※ (3)のケースは、そもそも、Pull Request送信元のpull忘れでConflictが発生しているので、送信元の想定していない部分が、送信先で書き換えられている。ってケースが多いんじゃないか?と思います(そして、この部分は、送信先でのみ書き換えられているため、Pull Requestでは、Conflictが検出されない)。
...なんと言うか、
自分が作成した動画なんですが、改めて視聴すると、一瞬、「?」となる所が幾つかあるんですよね。で、よくよく考えると「なるほど。」となる。つまり、結構、長い間、Git、GitHubと付き合っていても、やはり、Conflict周辺で、混乱する所はアリ、結局の所、コレが、分散型のバージョン管理システム、Gitの難しさなんだろうなぁ。
...と思った次第です。
この解決策は、
Gitフローなどのフローを定義して、
設計変更連絡票などを使った、SI運用を行うことで解決できると思います。
今さら聞けない人のためのgit超入門
OSCオンライン新潟2020 - YouTube
https://www.youtube.com/watch?v=4crnFbiiFvE