El .gitignore le dice a Git qué no seguir. Los patrones son simples: node_modules/ ignora una carpeta, *.log ignora por extensión y !keep.log hace una excepción. Ojo: solo afecta archivos sin seguimiento. Si un archivo ya estaba commiteado, sigue en seguimiento: se corrige con git rm --cached <archivo>, que lo deja en tu disco. git check-ignore -v <archivo> te dice qué regla aplica.
El desastre clásico: un .env commiteado. Un secreto que entró en un commit queda en la historia aunque lo borres después. El orden correcto es: primero revocar o rotar la credencial; después, si hace falta, reescribir la historia con una herramienta dedicada como git-filter-repo; y asumir que clones, forks y cachés anteriores pueden conservarlo. La convención es versionar un .env.example con valores de ejemplo.
Qué no se commitea: secretos y credenciales, archivos de entorno local, dependencias (node_modules/), salidas generadas y binarios grandes.
Estructura y documentación. Carpetas por responsabilidad y un README que explique qué es el proyecto y cómo correrlo. CONTRIBUTING y LICENSE son otras convenciones. Existen también archivos de texto plano con instrucciones para agentes, como AGENTS.md o CLAUDE.md: son contexto, no una regla que se haga cumplir, y se revisan como código.
Tres ideas para llevarte:
- Primero rotá el secreto, después limpiá.
.gitignoreno afecta lo que ya se commiteó.- Escribí la estructura en el repo y revisala en cada diff.