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