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

Por qué squash

Una rama de feature suele acumular commits de "WIP", "fix typo" y "atendiendo review" que entierran la intención. El squash los condensa en un pequeño número de commits lógicamente significativos antes del merge. Los revisores ven historia limpia; bisect funciona sobre unidades reales de cambio.

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

Respuesta a incidentes

Hiciste commit de una clave API, contraseña o llave privada. Eliminarla del último commit no es suficiente — Git mantiene el archivo en cada commit anterior hasta que reescribas la historia. Esta página recorre la respuesta completa al incidente.

Paso 1: rotar inmediatamente

Antes de tocar el repo, revoca la credencial. Asume que cualquier historia subida ya ha sido replicada, raspada o cacheada por el programa de archivo de GitHub. Rotar es la única solución verdadera; reescribir solo ralentiza a los atacantes.

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

Por qué filter-repo

git filter-repo es el reemplazo moderno del obsoleto git filter-branch. Es dramáticamente más rápido — a veces 100x — más seguro por defecto, y proporciona las operaciones de alto nivel que la cirugía de historia realmente necesita: eliminar archivos, renombrar rutas, eliminar autores, dividir subdirectorios y cambiar emails en todos los commits.

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

El modelo de subárbol

Un subárbol fusiona la historia de otro repositorio en un subdirectorio del tuyo. A diferencia de los submódulos, no hay gitlink separado ni comandos extra requeridos para clonar — cualquiera que clone tu repo obtiene el contenido del subárbol automáticamente. El costo es una historia más densa; el beneficio es simplicidad operativa.

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

Lista de frustraciones

Los submódulos son potentes pero hacen tropezar a los nuevos usuarios repetidamente. Esta página cataloga los fallos más comunes y las recetas que los arreglan.

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

Qué son los submódulos

Un submódulo es un repositorio Git anidado dentro de otro. El repo padre registra la URL del submódulo y un SHA específico, así cualquiera que clone el padre puede obtener el código exacto que se probó conjuntamente. Usa submódulos cuando quieras anclar una dependencia a un commit fijo preservando su historia independiente.

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

Bisección sin manos

El bisect manual requiere un veredicto humano en cada paso. git bisect run automatiza el bucle: proporciona un script que devuelve 0 para bueno, distinto de cero para malo, y 125 para "saltar este commit." Bisect llevará la búsqueda hasta el final, a menudo desatendido.

El contrato

Tu script debe:

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

Búsqueda binaria por la historia

git bisect realiza una búsqueda binaria entre commits para encontrar el que introdujo un bug. Dado un commit conocido como bueno y otro conocido como malo, Git revisa commits intermedios y te pide que pruebes. Cada respuesta divide el espacio de búsqueda a la mitad, así que 1024 commits se resuelven en unos 10 pasos.

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

Qué hace cherry-pick

git cherry-pick aplica el diff de uno o más commits sobre la rama actual como nuevos commits. Es la herramienta correcta cuando quieres un cambio específico sin hacer merge de toda la rama — típico para portar arreglos a una rama de release o para adelantar un hotfix.

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

Por qué el rebase interactivo

El rebase interactivo reescribe una secuencia de commits en una historia más limpia y significativa antes de publicar. Es el instrumento quirúrgico de Git: puedes reordenar, editar, hacer squash, fixup, descartar, reescribir o dividir commits, todo en una sola sesión guiada. Dominarlo transforma una rama local desordenada en una historia que los revisores pueden seguir.