質問
次のようなコミットがあるとします。
A - B - C - D - G - H
\ /
- E - F -
最初の親だけに従って、完全に線形の履歴を取得するにはどうすればよいですか?
例えば、私は取得したい:
A - B - C - D - G'- H'
上記のように、G と H の sha1 が変更されることが予想されます。(明らかな理由で)。A、B、C、および D の sha1 も変化する場合、その理由を知りたいです。
バックグラウンド
これは、単純な git rebase -i を実行したときに発生する可能性のあるマージ コミットを回避することを目的としています。
本当のポイントは、たとえば、次のグラフがある場合、特定のブランチにあるコミットを判断するために追加の洞察を得ることです。
I - J - K - L - M
\ / / /
- N - O - P -
N は K にマージされましたが、O は --strategy=ours で L にマージされ、P は M にマージされました。
このような問題のあるコミットを特定して検査できるように、履歴を線形化できるようにしたいと考えています。git cherry を使用して、N と P が上流のブランチから欠落している可能性があることを潜在的に識別したとしても、O が上流のブランチに配置されなかったことを識別できるツリーが必要ですが、ここでの提案をいただければ幸いです。 .