Por Anónimo (no verificado) , 29 Abril 2026

Introducción

Git está dividido en dos capas. Los comandos plumbing son bloques de construcción de bajo nivel que operan sobre la base de datos de objetos, las refs y el index. Los comandos porcelain son envoltorios amigables construidos a partir de plumbing. git commit es porcelain; git hash-object, git write-tree y git update-ref son plumbing.

Por Anónimo (no verificado) , 29 Abril 2026

Introducción

La recolección de basura (gc) mantiene tu repositorio compacto y rápido. Git la ejecuta automáticamente cuando se exceden ciertos umbrales. También puedes invocarla manualmente.

Por Anónimo (no verificado) , 29 Abril 2026

Introducción

Un clon shallow descarga solo los N commits más recientes de un branch en lugar del historial completo. El resultado es mucho más pequeño y rápido de descargar, al costo de un historial incompleto.

Creando

git clone --depth 1 https://github.com/example/widget.git
git clone --depth 50 https://github.com/example/widget.git
git clone --depth 1 --branch v1.2.3 --single-branch <url>

El directorio .git contiene un archivo shallow que lista los commits cuyos padres se han omitido.

Por Anónimo (no verificado) , 29 Abril 2026

Introducción

Autenticarse a un remoto Git es mayormente invisible hasta que algo sale mal. Los dos mecanismos principales son claves SSH y credenciales HTTPS (contraseñas o, más comúnmente hoy, tokens de acceso personal).

Claves SSH

Genera una clave moderna:

Por Anónimo (no verificado) , 29 Abril 2026

Introducción

Git puede transportar datos sobre cuatro familias de protocolos. Cada uno tiene diferentes compromisos en rendimiento, autenticación y amabilidad con firewalls.

Local / file

Clonar desde un directorio usa I/O de archivo local. Dos formas de URL:

git clone /srv/git/widget.git
git clone file:///srv/git/widget.git

La primera forma puede usar hardlinks para los objetos cuando están en el mismo sistema de archivos (muy rápido, muy eficiente en espacio). La forma file:// siempre copia vía el protocolo smart.

Por Anónimo (no verificado) , 29 Abril 2026

Introducción

Todo lo que Git sabe sobre un repositorio vive en .git/. Conocer qué es cada entrada quita el misterio del diagnóstico "¿qué acaba de pasar?".

Por Anónimo (no verificado) , 29 Abril 2026

Introducción

El modelo direccionado por contenido de Git deduplica objetos idénticos, pero blobs similares-pero-no-idénticos (un archivo y una edición posterior) seguirían costando tamaño completo cada uno. Los archivos pack resuelven esto con compresión delta: almacenan un objeto como una base más una secuencia de instrucciones "copy/insert" que producen otro objeto.

Cómo funciona

Al empaquetar, Git compara objetos candidatos (típicamente blobs de tamaño y tipo similar) y elige una base para cada uno. El delta registra:

Por Anónimo (no verificado) , 29 Abril 2026

Introducción

Git almacena objetos en dos formatos físicos. Los objetos sueltos son archivos individuales; los objetos empaquetados viven dentro de un archivo pack con un cuerpo comprimido con delta. Ambas formas describen los mismos objetos lógicos, direccionados por los mismos hashes.

Por Anónimo (no verificado) , 29 Abril 2026

Introducción

Una ref simbólica es una referencia cuyo valor es otro nombre de ref en lugar de un hash de objeto. El ejemplo canónico es HEAD, que normalmente contiene ref: refs/heads/main. Las refs simbólicas permiten a Git rastrear "el branch actual" como datos, no como estado.

Por Anónimo (no verificado) , 29 Abril 2026

Introducción

"Alcanzabilidad" es la propiedad más importante de un objeto Git. Un objeto es alcanzable si alguna ref lleva a él vía enlaces de padre o tree. Los objetos inalcanzables son elegibles para recolección de basura.

Reglas de alcanzabilidad

Empezando desde cualquier ref: