¿Git guarda las enmiendas?

Sé que existen en git reflog , pero si git reflog un commit a un repository remoto, lo modifico, entonces git push --force (warning: pushing --force a los repositorys remotos por lo general debería evitarse), existirá la confirmación que sobrescribí ¿algun lado?

¿El compromiso que sobreescribí existe en alguna parte?

Solo en:

  • el reflog de su repository local
  • el reflog de su repository remoto ascendente (donde ese compromiso se publicó previamente).
    Ese repo upstream suele ser simple , como comenta kostix , por lo que core.logAllRefUpdates debe ser verdadero , si quiere ver el reflog en dicho repository reverso.
  • cualquier otro clon local de su repository remoto, hecho antes de su segundo empujón git ( --force ) por otras personas.

Tenga en count que ORIG_HEAD (un recuerdo de una época en la que el reflog aún no existía ) no es creado / actualizado por un git commit (como un git commit --amend o un git commit --amend -m "new comment" ).
Por lo tanto, si el reflog no está activado en un repository, ORIG_HEAD no se puede usar para hacer reference al compromiso modificado.

No. Su confirmación modificada permanecerá en su repository local durante un time, pero no se publicará.

Al presionar, Git calcula los commits perdidos para tener la twig remota en el mismo punto que su sucursal local. Dado que su confirmación modificada ya no está en la twig, no será empujada.

Una confirmación corregida permanece hasta que se produce una recolección de basura. Pero GC verifica varias condiciones antes de eliminar una confirmación, así que no tema perder datos.