Git Glosario
Guía de la A a la Z de la terminología de Git. 60 términos esenciales explicados con palabras sencillas.
A
Ancestro
Un commit que precede a otro en el historial. Los commits padre y sus padres son todos ancestros.
Etiqueta anotada
Una etiqueta que guarda metadatos extra como el nombre y el correo de quien la crea, la fecha y un mensaje. Recomendada para las versiones.
B
Repositorio bare
Un repositorio sin directorio de trabajo. Solo contiene lo que hay en la carpeta .git. Se usa como repositorio central para compartir.
Blob
Un objeto de Git que guarda el contenido de un archivo. Abreviatura de «binary large object».
Ramificar
Un puntero móvil a un commit. Representa una línea de desarrollo independiente en un repositorio.
C
Cherry-pick
Copiar los cambios de un commit existente en tu rama actual como un commit nuevo (con un hash nuevo).
Clon
Una copia completa de un repositorio remoto, con cada commit y ramas de seguimiento remoto como origin/main, creada con git clone.
Commit
Una instantánea de tu repositorio en un momento concreto. Contiene un árbol, el commit o commits padre, el autor y un mensaje.
Hash del commit
Una suma de comprobación SHA-1 de 40 caracteres que identifica un commit de forma única. Casi siempre se puede abreviar a 7 caracteres.
Conflicto
Ocurre cuando Git no puede fusionar los cambios automáticamente porque las mismas líneas se modificaron de forma distinta en las dos ramas.
D
HEAD desacoplado
Un estado en el que HEAD apunta directamente a un commit en lugar de a una rama. Los cambios hechos aquí pueden perderse si no se guardan en una rama.
Diff
La diferencia entre dos versiones de un archivo o conjunto de archivos. Muestra lo añadido, lo borrado y lo modificado.
E
Repositorio incrustado
Una carpeta con su propio .git dentro de otro repositorio. Git solo la registra como un puntero a un commit (un gitlink); usa submódulos en su lugar.
F
Fast-forward
Una fusión en la que el puntero de la rama simplemente avanza porque no hay commits divergentes. No se crea commit de merge.
Fetch
Descargar commits y referencias nuevos de un remoto sin tocar tus propias ramas ni tu árbol de trabajo.
Fixup
Una acción del rebase interactivo que funde un commit con el anterior y descarta su mensaje.
Force with Lease
git push --force-with-lease: sobrescribir la rama remota solo si sigue apuntando donde la viste por última vez, para no perder nunca el trabajo de un compañero.
Fork
Una copia personal de otro repositorio en un servicio de alojamiento. Muy usada en el código abierto para proponer cambios mediante pull requests.
G
Commit injertado
En un clon superficial, el commit más antiguo descargado: sus padres existen en el servidor pero nunca se descargaron.
H
HEAD
Un puntero a la referencia de rama o al commit actual. Representa tu posición actual en el historial del repositorio.
Hook
Un script que se ejecuta automáticamente cuando ocurren ciertos eventos de Git, como pre-commit, post-commit o pre-push.
Hotfix
Una corrección urgente para código publicado, normalmente hecha en la rama de release, etiquetada y luego llevada de vuelta a main.
Hunk
Un bloque de líneas cambiadas en un diff, con algunas líneas de contexto sin cambios alrededor. git add -p prepara hunk a hunk.
I
Índice
También llamado área de preparación. Una zona intermedia donde se preparan los cambios antes de confirmarlos en el repositorio.
Rebase interactivo
git rebase -i: reescribir una serie de commits editando una lista de tareas (pick, reword, squash, fixup, drop).
L
Etiqueta ligera
Un simple puntero a un commit sin metadatos adicionales. Solo un nombre para un commit concreto.
M
Main/Master
La rama principal por defecto de un repositorio. «main» es la convención moderna; «master», el nombre antiguo.
Commit de merge
Un commit con dos o más padres que combina en uno los cambios de distintas ramas.
Conflicto de merge
Cuando Git no puede resolver automáticamente las diferencias entre dos ramas. Hay que resolverlo a mano.
O
Objeto
La unidad de almacenamiento básica de Git. Hay cuatro tipos: blob (archivo), tree (directorio), commit y tag.
ORIG_HEAD
Una referencia que Git fija antes de operaciones arriesgadas (reset, merge, rebase) en el punto donde estaba HEAD; git reset --hard ORIG_HEAD las deshace.
Origin
El nombre por defecto del repositorio remoto desde el que clonaste. Apunta a la fuente original.
P
Commit padre
El commit que precede directamente a otro. Los commits de merge tienen varios padres.
Pathspec
Un patrón que limita las rutas en los comandos de Git. Puede incluir comodines e indicaciones de directorios.
Prune
Eliminar las ramas de seguimiento remoto cuya rama ya no existe en el remoto (git fetch --prune).
Pull
git fetch seguido de integrar con merge (o rebase) el upstream descargado en tu rama actual.
Pull request
Una solicitud en una plataforma de alojamiento (GitHub, GitLab…) para revisar una rama y fusionarla en otra. No es un comando de Git.
Push
Subir tus commits a un remoto y mover su rama para que coincida con la tuya.
R
Rebase
Reaplicar commits encima de otro commit base, lo que produce commits nuevos y un historial lineal.
Referencia (ref)
Abreviatura de «reference». Un puntero a un commit, como un nombre de rama, una etiqueta o HEAD.
Reflog
Un registro de todas las actualizaciones de referencias en tu repositorio local. Anota cada cambio en las puntas de las ramas y en HEAD.
Rama de release
Una rama que contiene una versión publicada para poder corregirla mientras main sigue avanzando.
Remoto
Una versión de tu repositorio alojada en otro sitio (como GitHub o GitLab). Se usa para colaborar y como copia de seguridad.
Rama de seguimiento remoto
Un marcador local de solo lectura de una rama remota, como origin/main, que actualizan fetch, pull y push.
Repositorio
Un directorio con los archivos de tu proyecto y todo el historial de Git guardado en una carpeta .git.
Revert
Un commit nuevo que deshace los cambios de otro anterior sin reescribir el historial: seguro en ramas compartidas.
S
SHA-1
La función hash criptográfica que usa Git para generar identificadores únicos de commits y objetos.
Clon superficial
Un clon con solo los commits más recientes (git clone --depth N), habitual en CI; se amplía con fetch --depth o --unshallow.
Commit firmado
Un commit con una firma GPG (o SSH) que los servicios de alojamiento pueden mostrar como «Verified». Se crea con git commit -S.
Squash
Combinar varios commits en uno, p. ej. con un rebase interactivo o git merge --squash.
Área de preparación
La zona intermedia entre tu directorio de trabajo y el repositorio, donde preparas los commits. También se llama índice.
Stash
Un estante temporal para los cambios sin commit (git stash), para cambiar de tarea con el árbol de trabajo limpio.
Submódulo
Un repositorio incrustado dentro de otro. Útil para incluir dependencias externas en una versión concreta.
T
Etiqueta
Una referencia con nombre que apunta a un commit concreto. Suele usarse para marcar versiones publicadas como v1.0.0.
Rama de seguimiento
Una rama local con una relación directa con una rama remota. Permite hacer push/pull sin indicar el remoto.
Tree (árbol)
Un objeto de Git que representa un directorio. Contiene referencias a blobs (archivos) y a otros trees (subdirectorios).
U
Archivo sin seguimiento
Un archivo del directorio de trabajo que Git no vigila. No entra en los commits hasta que se añade explícitamente.
Upstream
La rama remota que sigue una rama local. La fuente desde la que se traen los cambios.
W
Directorio de trabajo
El directorio de tu sistema de archivos donde editas los archivos. Contiene la versión actual de tu proyecto.
Árbol de trabajo
Otro nombre del directorio de trabajo. Los archivos que ves y editas en la carpeta del proyecto.