La referencia de Git (Git ref) es solo un archivo que contiene un hash SHA-1 de git commit. La forma más directa de hacer referencia a una confirmación es a través de su hash SHA-1, que actúa como una ID única para cada confirmación. Para hacer referencia a una confirmación, debe recordar su valor hash SHA-1, por lo que en lugar de recordar el valor hash SHA-1, puede usar git ref, que es fácil de recordar en lugar de hash. Podemos decir que una referencia es una forma indirecta de referirse a una confirmación, puede considerarla como un alias fácil de usar para una confirmación.
Las referencias se almacenan como un archivo de texto normal en el directorio .git/refs . Para explorar referencias en uno de los repositorios del proyecto, vaya a .git/refs o escriba el siguiente comando en Git bash en el directorio raíz de su proyecto.
$ls -F1 .git/refs
o escriba el comando en Git bash en el directorio raíz de su proyecto
encontrar .git/refs
Debería ver la siguiente estructura, pero contendrá diferentes archivos según las ramas, etiquetas y controles remotos que tenga en su repositorio.
$ls -F1 .git/refs
cabezas/
Maestro
controles remotos/
etiquetas/
Todas las ramas locales del repositorio se definen en el directorio refs/heads/ . Cada nombre de archivo coincide con los nombres de la rama correspondiente y, dentro del archivo, encontrará un hash de confirmación. Este hash de confirmación es la ubicación de la punta de la rama.
reflogs
Git realiza un seguimiento de las actualizaciones en la punta de las ramas mediante un mecanismo llamado Registros de referencia o «reflogs». Además de los registros de referencia de rama, se mantiene un registro de referencia especial para el alijo de Git. Para explorar los reflogs de git, vaya a .git/logs/ref/heads y también a git/logs/ref/stash (si se ha usado git stash en el repositorio).
Reflogs registra cuándo se actualizaron las puntas de las sucursales y otras sucursales en los repositorios locales. Reflogs son útiles en varios comandos de Git, para especificar el valor antiguo de una referencia. Por ejemplo, HEAD@{2} significa «donde solía estar HEAD hace dos movimientos».
$git reflog CABEZA@{2}
$git reflog
Este comando administra la información registrada en reflogs. El comando toma varios subcomandos y diferentes opciones dependiendo de los subcomandos. A continuación se muestran algunos de los subcomandos más utilizados en reflogs.
git reflog [mostrar] [opciones de registro] [<ref>]
git reflog expire [–expire=<tiempo>] [–expire-unreachable=<tiempo>]
[–rewrite] [–updateref] [–stale-fix]
[–ejecución en seco | -n] [–verbose] [–all [–single-worktree] | <refs>…]
git reflog eliminar [–reescribir] [–updateref]
[–ejecución en seco | -n] [–verbose] ref@{especificador}…
git reflog existe <ref>
Las palabras entre corchetes como «mostrar», «opciones de registro» son calificadores, o podemos decir argumentos para el comando git reflog .
- Git Reflog Show: el subcomando «show» (que también es predeterminado, en ausencia de cualquier subcomando) muestra registros de la referencia proporcionada en el comando (o HEAD, de manera predeterminada). El reflog cubre todas las acciones recientes y, además, HEAD reflog registra el cambio de rama.
- Git Reflog Expire: el subcomando «expire» elimina las entradas de reflog más antiguas. Las entradas anteriores al tiempo de » caducidad » o las entradas anteriores al tiempo de » caducidad inalcanzable» y no accesibles desde el consejo actual, se eliminan del registro de referencia. Por lo general, los usuarios finales no lo usan directamente.
- Git Reflog Delete: el subcomando «delete» elimina entradas individuales del reflog. Su argumento debe ser una entrada exacta (por ejemplo, » git reflog delete master@{2} «). Este subcomando tampoco suele ser utilizado directamente por los usuarios finales.
- Git Reflog Exists: el subcomando «exists» comprueba si una referencia tiene un registro de referencia. Sale con estado cero si existe el registro de referencia y con estado distinto de cero si no existe.
Publicación traducida automáticamente
Artículo escrito por shabirahmad14217 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA