私はマスターから離れたブランチ(他の人たちと一緒に)に取り組んでいます。
A - B - C - F - G (master)
\
D - E (branch-a)
後で競合を最小限に抑えるために、定期的に master をブランチにマージします。
A - B - C - F - G (master)
\ \
D - E - H (branch-a)
最終的には、再びマージする必要があります。
A - B - C - F - G - I - K - M - N (master)
\ \ \ /
D - E - H - J - L - O (branch-a)
マスターにマージできる最もクリーンな方法は何ですか?
- 個々のコミットを保持したい (つまり、スカッシュなし)
- もう使用
branch-a
しないため、コミットのハッシュは変更される可能性があります。 - 可能であれば、競合のないマージのマージ コミット(例:
H
)を含めないようにしたいと思います。L
理想的には、次のようになります (競合がないと仮定します)。
A - B - C - F - G - I - K - M - N (master)
\ /
D - E - J - O
これをどのように行うべきかについてのアイデアはありますか?
(参考までに、これは私のワークフローに関する質問です。もっと前に何か他のことをするべきだったのであれば、それも正当な答えです。)
アップデート:
これについてもう少し考えた後、これはしばしば不可能であることに気付きました。
たとえば、J
変更された行をG
変更した場合、その履歴を取得する方法はありません。
次の最良の選択は、この履歴を持つことです。
A - B - C - F - G - I - K - M - D - E - J - O (master)
基本的に、これはリベースですが、不要なマージ コミットを省略しています。