В "StackOverflow" мало вопросов о "сглаживании слияния", причем ответ обычно "git rebase". Эти ответы хотя пропустите один решающий момент - порядок коммитов.
Предположим, что существует ветвь A с фиксацией 1 июня и 1 августа и ветка B с фиксацией 1 июля (UPDATE), чтобы восстановить описанную ниже usecase: ветки полностью независимы и не имеют обычная родословная, например, из двух разных репозиториев). При объединении B в будет следующая история (за 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 всегда складывает одну ветку поверх другой, в то время как я ищу решение, которое будет выполнять промежуточные коммиты, отсортированные по дате фиксации автора.
По-видимому, для простых случаев необходимая компоновка может быть достигнута путем ручной постобработки git rebase с помощью git rebase -i, но это непрактично для больших историй, поэтому я бы искал автоматическую команду /script.
USECASE? Если A и B представляют разные части одного и того же проекта, которые оказались в разных репозиториях, и настало время исправить это, объединив их вместе, то естественно, что линейная история разворачивается в реальном порядке развития.