Как мне тривиально линеаризовать мою историю мерзавцев?

Вопрос

Учитывая, что у меня есть коммит как следующее:

A - B - C - D - G - H
     \         /
      - E - F -

Как получить идеально линейную историю, следуя только за первыми родителями?

Например, я хочу получить:

A - B - C - D - G'- H'

Ожидается, что Sha1 's из G и H изменятся, как отмечено выше. (По понятным причинам). Если Sha1 's для A, B, C и D тоже меняются, тогда я хочу знать почему.

Фон

Цель состоит в том, чтобы избежать потенциальных коммитов слияния, которые могут возникнуть при выполнении наивного git rebase -i.

Реальная цель состоит в том, чтобы надеяться получить дополнительное понимание, чтобы определить, какие коммиты находятся в конкретной ветке, например, если у нас есть следующий график:

I - J - K - L - M
 \     /   /   / 
  - N - O - P -

Где N был объединен с K, но O был объединен с --strategy = ours в L, а P был объединен с M.

Я хочу иметь возможность линеаризовать мою историю, чтобы такие проблемные коммиты могли быть идентифицированы и проверены. Я хочу иметь дерево, в котором можно было бы определить, что O не был помещен в ветвь вверх по течению, даже если я потенциально идентифицирую N и P как потенциально отсутствующие в ветке вверх по течению, используя git cherry, однако любые предложения здесь будут оценены ,

Ответы на вопрос(2)

Ваш ответ на вопрос