El objetivo de aplastar es reescribir el historial, reemplazando las confirmaciones originales por una confirmación única.
Dicho esto, es difícil hacer que las cosas realmente desaparezcan en git. La forma más fácil de obtener esos commits será a través del git reflog
. Pruebe git reflog <branch>
para las posiciones anteriores de la rama que ha cambiado de base. Debería poder encontrar el SHA1 de la punta de la rama justo antes de su rebase interactivo. (Si la sucursal ya no existe, intente git reflog show
para ver el reflog de HEAD
. También debería estar allí, simplemente otra actividad para ordenar). Una vez que tenga el SHA1, está dorado: use git log -p
o gitk
para ver el se compromete y ve sus diferencias (Si desea hacer mucho con él, cree una rama allí, para que no tenga que pegar el SHA1 una y otra vez).
Esto seguirá siendo posible después de ejecutar git gc
, siempre que no haya sido Pasó mucho tiempo desde que aplacaste esos compromisos. gc
solo poda inalcanzable objetos colgantes de cierta edad. Los commits se consideran alcanzables si se puede acceder desde cualquier elemento de los reflogs, y los reflogs tardan 90 días en caducar, por lo que generalmente puede contar con esos commits originales que duran alrededor de tres meses.
arregla el estilo por favor, difícil de leer :) – mecampbellsoup