StackOverflow での「フラット化マージ」についての質問はほとんどなく、通常は「git rebase」という答えが返ってきます。ただし、これらの回答には、コミットの順序という重要なポイントが 1 つ欠けています。
6 月 1 日と 8 月 1 日にコミットされたブランチ A と、7 月 1 日にコミットされたブランチ B があるとします。 )。B を A にマージすると、次の履歴が作成されます (git ログごと):
Merged branch 'B'
Aug 1
Jul 1
Jun 1
今、私が探しているのは、同じ結果を得る方法ですが、マージコミットはありません (したがって、その順序で基礎となる線形履歴があり、そうです、それはコミットを再親化することを意味します)。git rebase はここでは役に立ちません。それを使用すると、次の履歴が表示されます。
Jul 1
Aug 1
Jun 1
また
Aug 1
Jun 1
Jul 1
言い換えれば、git rebase は常に 1 つのブランチを別のブランチの上に積み重ねますが、著者のコミット日付でソートされたコミットを散在させるソリューションを探しています。
どうやら、単純なケースでは、git rebase -i を使用して手動で git rebase を後処理することで必要な調整を行うことができますが、これは大きな履歴では実用的ではないため、自動化されたコマンド/スクリプトを探しています。
使用事例?A と B が同じプロジェクトの異なる部分を表し、たまたま異なるリポジトリにあり、それらをマージしてそれを修正する時が来た場合、線形の履歴を実際の開発順序で展開することを望むのは自然なことです。