Haz todo lo posible por interpretar el código de forma correcta antes de usarlo a tu proyecto si tquieres aportar algo puedes dejarlo en los comentarios.
Solución:
git log
muestra el HEAD actual y su ascendencia. Es decir, imprime los puntos de confirmación HEAD, luego su padre, su padre, etc. Atraviesa la ascendencia del repositorio, buscando de forma recursiva el padre de cada confirmación.
(En la práctica, algunas confirmaciones tienen más de un padre. Para ver un registro más representativo, use un comando como git log --oneline --graph --decorate
.)
git reflog
no atraviesa la ascendencia de HEAD en absoluto. El reflog es una lista ordenada de las confirmaciones a las que HEAD ha apuntado: es el historial de deshacer de su repositorio. El reflog no es parte del repositorio en sí (se almacena por separado de las confirmaciones mismas) y no se incluye en empujes, recuperaciones o clones; es puramente local.
Aparte: comprender el reflog significa que realmente no puede perder datos de su repositorio una vez que se ha comprometido. Si restablece accidentalmente a una confirmación anterior, o cambia la base de forma incorrecta, o cualquier otra operación que “elimine” visualmente las confirmaciones, puede usar el reflog para ver dónde estaba antes y git reset --hard
vuelva a esa referencia para restaurar su estado anterior. Recuerde, las referencias implican no solo el compromiso, sino todo el historial detrás de él.
git log
muestra el registro de confirmación accesible desde las referencias (cabezas, etiquetas, controles remotos)git reflog
es un registro de todas las confirmaciones a las que se hace referencia en su repositorio en cualquier momento.
Es por eso que git reflog
(a local grabación que se poda después de 90 días de forma predeterminada) se usa cuando realiza una operación “destructiva” (como eliminar una rama), para recuperar el SHA1 al que hizo referencia esa rama.
Ver git config
:
gc.reflogexpire
gc..reflogexpire
git reflog
expirar elimina las entradas de registro anteriores a este tiempo; el valor predeterminado es 90 días.
Con “” (p.ej “
refs/stash
“) en el medio, la configuración se aplica solo a las referencias que coinciden con.
git reflog
a menudo se hace referencia como “su red de seguridad”
En caso de problemas, el consejo general, cuando git log no muestra lo que está buscando, es:
“Mantenga la calma y use
git reflog
“
Nuevamente, reflog es una grabación local de su SHA1.
Opuesto a git log
: si empuja su repositorio a un repositorio ascendente, verá lo mismo git log
, pero no necesariamente el mismo git reflog
.
Aquí está la explicación de reflog
del libro Pro Git:
Una de las cosas que hace Git en segundo plano mientras estás trabajando es mantener un reflog: un registro de dónde han estado tus referencias HEAD y branch durante los últimos meses.
Puedes ver tu reflog usando
git reflog
:$ git reflog 734713b... [email protected]0: commit: fixed refs handling, added gc auto, updated d921970... [email protected]1: merge phedders/rdocs: Merge made by recursive. 1c002dd... [email protected]2: commit: added some blame and merge stuff 1c36188... [email protected]3: rebase -i (squash): updating HEAD 95df984... [email protected]4: commit: # This is a combination of two commits. 1c36188... [email protected]5: rebase -i (squash): updating HEAD 7e05da5... [email protected]6: rebase -i (pick): updating HEAD
Cada vez que la sugerencia de su sucursal se actualiza por cualquier motivo, Git almacena esa información por usted en este historial temporal. Y también puede especificar confirmaciones más antiguas con estos datos.
El reflog
El comando también se puede usar para eliminar entradas o caducar entradas del reflog que son demasiado antiguas. De la documentación oficial de Git del kernel de Linux para reflog
:
El subcomando
expire
se utiliza para eliminar entradas de registro anteriores.Para eliminar entradas individuales del reflog, use el subcomando
delete
y especifique la entrada exacta (p. ej.git reflog delete [email protected]2
).
Agradecemos que desees añadir valor a nuestra información asistiendo con tu veteranía en las críticas.