質問: 現在,LaTeXを用いて複数人で文書作成を行っており,バージョン管理をGitHubで行っています.参加者には,私自身のレポジトリをForkしてもらい,各章を書き終えた段階で私にプルリクエストを送ってもらうようにしたいです. ただここで1つ問題があるように思いました.以下のような状況とします. 参加者A(私自身)のコード ``` \begin{document} \section{1章} テキストテキスト \section{2章} %参加者Bにおまかせ \section{3章} テキストテキスト \end{document} ``` 参加者Bのコード ``` \begin{document} \section{1章} テキストテキスト \section{2章} テキストテキスト \section{3章} %参加者Aにおまかせ \end{document} ``` この状況でBがAにプルリクエストを送り承認された場合,Aの3章のテキストが消えてしまいます. これを避けるためにBからのプルリクエストに対して,2章部分の変更のみを適用したいのですがどのようにすればよいのでしょうか.また,Bがプルを行う場合でも同様に3章部分のみを適用したいです.
回答: 適当なテスト用レポジトリを作成して、プルリクエストのテストをすればわかるかと思いますが、私の理解が正しいなら、プルリクエストをマージすることで、2章(Bにとって)や3章(Aにとって)は消えないはずです。 これは、マージの際には、ファイルに対して 3 way merge が行われるからです。これは何かと言うと、すごくざっくり説明すると、共通の祖先からの差分が互いにぶつからないようであった場合は、単純にそれら両方を適用したような成果物を生成するアルゴリズムです。