Да, это возможно:
Вы должны сначала найти коммит, который находится перед тем, с которым вы хотите работать. Представьте, что мы хотим объединить два последних коммита:
git rebase -i HEAD~3
При этом будет запущен редактор для интерактивного перебазирования, который дает вам возможность выполнять так называемое сжатие коммитов, и в нем будут перечислены коммиты, начиная с того, который был три коммита назад.
ПОЖАЛУЙСТА, прочитайте сообщение справки в открывшемся окне редактора, чтобы понять, как использовать интерактивный ребаз.
Для того, чтобы отменить операцию восстановления, вы должны удалить все строки из файла и сохранить его!
Вы также не касаетесь идентификатора и описания фиксации - вы просто меняете команду перед идентификатором фиксации с «pick» на «s» (squash)
Другое дело, что вы абсолютно правильно упомянули, что еще не давили. Первое и единственное правило git - «Не переписывать опубликованную историю». То есть Вы не перемещаете, не переупорядочиваете или удаляете коммиты, которые уже были выдвинуты для публичного доступа.
Это верно для любой ситуации, кроме случаев, когда вы работаете над проектом только вы.