Я не думаю, что это возможно сделать в Git, по замыслу.
Идентификатор коммита основан на более старых коммитах, поэтому, если ваши старые коммиты меняются, то ваши более новые также должны меняться..
В любом случае, я предполагаю, что вы уже отправили эту историю на удаленный сервер, поскольку вы хотите сохранить идентификатор верхнего коммита таким же, и этого делать не следует;Это испортит репо других людей.
С другой стороны, если вы не нажали, просто сделайте сквош .
...Одним из наиболее широко используемых является способность сдавливать коммитов.Для этого нужно взять меньшие коммиты и объединить их в более крупные, что может быть полезно, если вы завершаете дневную работу или просто хотите упаковать изменения по-другому.
Словоосторожно: Делайте это только с коммитами, которые не были переданы во внешний репозиторий.Если другие основывают работу на коммитах, которые вы собираетесь удалить, может возникнуть множество конфликтов.Только не переписывайте свою историю, если она была передана другим.