1.3 Tu primer repositorio¶
Crear el repositorio y el primer commit¶
mkdir mi-proyecto
cd mi-proyecto
git init
git status
git init crea la carpeta oculta .git. Crea un archivo hola.txt con cualquier editor y observa el estado:
git status
Verás hola.txt como archivo sin seguimiento (untracked). Pásalo al área de preparación y confírmalo:
git add hola.txt
git status
git commit -m "Añade el archivo de saludo"
git status
El ciclo de trabajo¶
editar archivos -> git status -> git add <archivos> -> git commit -m "mensaje" -> repetir
Revisa antes de añadir
git add . añade todo lo de la carpeta. Úsalo solo después de mirar git status, para no subir archivos que no querías.
Consultar el historial¶
git log
git log --oneline
git log --oneline --graph --all
Para ver qué cambió sin confirmar todavía:
git diff # cambios sin preparar
git diff --cached # cambios ya preparados (staging)
git show <hash> # un commit concreto
Ignorar archivos: .gitignore¶
Algunos archivos no deben versionarse: carpetas de compilación, configuración del IDE, dependencias o secretos. Crea un archivo .gitignore en la raíz:
# Ejemplos
.idea/
.vscode/
build/
node_modules/
__pycache__/
*.log
.env
Añádelo y confírmalo como cualquier otro archivo.
Nunca subas secretos
Contraseñas, claves, tokens y archivos .env no deben estar en un repositorio. Si un secreto llega a un commit, borrarlo después no lo elimina del historial: hay que cambiar la contraseña.
Deshacer con seguridad¶
| Situación | Comando |
|---|---|
| Quitar un archivo del staging (sin borrar su contenido) | git restore --staged archivo |
| Descartar los cambios de un archivo sin confirmar | git restore archivo (irreversible) |
| Deshacer un commit ya hecho sin reescribir la historia | git revert <hash> (crea un commit inverso) |
| Mirar un commit antiguo sin mover nada | git switch --detach <hash> y volver con git switch main |
Comandos destructivos
git reset --hard y git checkout . pueden borrar cambios sin confirmar sin preguntar. Mientras aprendes, haz un commit antes de experimentar.
Arreglar el último mensaje¶
Si el último commit todavía no está subido, puedes corregir su mensaje:
git commit --amend -m "Mensaje corregido"
No lo hagas con commits que ya hayas publicado.