Ответ 1
Смысл сжатия коммитов состоит в том, чтобы переписать историю, заменив оригинальные коммиты одним коммитом.
Тем не менее, трудно сделать вещи на самом деле исчезают в Git. Самый простой способ получить эти коммиты будет через git reflog
. Попробуйте git reflog <branch>
для предыдущих позиций ветки, которую вы перебазировали.
Вы должны быть в состоянии найти SHA1 кончика ветки непосредственно перед вашей интерактивной перебазировкой. (Если ветвь больше не существует, попробуйте git reflog show
чтобы увидеть reflog HEAD
. Она также должна быть там, просто больше других действий для сортировки.)
Когда у вас есть SHA1, вы - золотой - используйте git log -p
или gitk
для просмотра git log -p
и просмотра их различий. (Если вы хотите много с этим сделать, создайте там ветку, чтобы вам не приходилось вставлять SHA1 снова и снова.)
Это все еще будет возможно после запуска git gc
, если только вы не подавили эти коммиты. gc
только обрезает недоступные висячие объекты в течение определенного возраста.
Коммиты считаются достижимыми, если они достижимы из чего-либо в повторных журналах, и срок их действия истекает через 90 дней, так что вы обычно можете рассчитывать на эти оригинальные коммиты, торчащие в течение трех месяцев.