Appearance
Git: guía rápida de comandos
Git es un sistema de control de versiones: guarda el historial de los cambios de un proyecto y permite volver a versiones anteriores, comparar modificaciones y colaborar con otras personas.
Git y GitHub no son lo mismo:
- Git es la herramienta que controla las versiones en tu computadora.
- GitHub es una plataforma en línea donde puedes alojar repositorios Git y colaborar.
1. El flujo de trabajo básico
En un proyecto Git, los cambios suelen pasar por tres lugares:
- Directorio de trabajo: los archivos que estás editando.
- Área de preparación (staging area): los cambios que seleccionaste para incluir en el próximo commit.
- Repositorio local: el historial de commits guardados en tu computadora.
El flujo habitual es:
bash
git status
git add .
git commit -m "Describe el cambio"
git pushgit status: revisa qué cambió.git add .: prepara todos los cambios de la carpeta actual y sus subcarpetas.git commit -m "...": guarda una versión en el historial local.git push: envía los commits al repositorio remoto, por ejemplo, GitHub.
Consejo: usa
git statuscon frecuencia. Es una de las formas más fáciles de saber qué está pasando.
2. Comandos que más se usan
Revisar el estado y el historial
| Comando | ¿Para qué sirve? |
|---|---|
git status | Muestra archivos modificados, nuevos y preparados. |
git log | Muestra el historial de commits. |
git log --oneline | Muestra el historial en formato compacto. |
git diff | Muestra cambios que todavía no has preparado con git add. |
git diff --staged | Muestra cambios preparados para el próximo commit. |
Preparar y guardar cambios
| Comando | ¿Para qué sirve? |
|---|---|
git add archivo.md | Prepara un archivo específico. |
git add . | Prepara los cambios bajo la carpeta actual. |
git add -A | Prepara todos los cambios del repositorio. |
git commit -m "Agrega notas de PostgreSQL" | Crea un commit con los cambios preparados. |
git commit --amend | Modifica el último commit; úsalo con cuidado si ya lo compartiste. |
Los mensajes de commit deberían describir el cambio de forma breve, por ejemplo:
bash
git commit -m "Agrega guía de índices B-tree"
git commit -m "Corrige navegación del catálogo"
git commit -m "Actualiza instrucciones de instalación"Sincronizar con GitHub u otro remoto
| Comando | ¿Para qué sirve? |
|---|---|
git remote -v | Muestra los repositorios remotos configurados. |
git fetch | Descarga información y commits remotos sin integrarlos en tu rama actual. |
git pull | Descarga e integra cambios del remoto en tu rama actual. |
git push | Sube los commits locales al remoto. |
git push -u origin main | Sube main y la configura para seguir la rama remota correspondiente. |
git clone URL | Descarga una copia de un repositorio remoto. |
En un repositorio conectado a GitHub, el flujo típico para publicar tus cambios es:
bash
git status
git add .
git commit -m "Actualiza apuntes"
git pushSi es la primera vez que subes la rama, puede que necesites:
bash
git push -u origin mainRamas (branches)
Las ramas permiten trabajar en cambios sin modificar directamente la rama principal.
| Comando | ¿Para qué sirve? |
|---|---|
git branch | Lista las ramas locales. |
git branch nombre-rama | Crea una rama. |
git switch nombre-rama | Cambia a una rama existente. |
git switch -c nombre-rama | Crea una rama y cambia a ella. |
git merge nombre-rama | Integra la rama indicada en la rama actual. |
git branch -d nombre-rama | Elimina una rama local ya integrada. |
Ejemplo:
bash
git switch -c mejora-catalogo
# Edita y prueba los archivos
git add .
git commit -m "Mejora el catálogo de notas"
git switch main
git merge mejora-catalogoIniciar o configurar un repositorio
| Comando | ¿Para qué sirve? |
|---|---|
git init | Inicializa un repositorio Git en la carpeta actual. |
git remote add origin URL | Añade un remoto con el nombre origin. |
git remote -v | Comprueba las URL de los remotos. |
git branch -M main | Renombra la rama actual a main. |
git config --global user.name "Tu nombre" | Configura el nombre que aparecerá en tus commits. |
git config --global user.email "tu-correo@example.com" | Configura el correo que aparecerá en tus commits. |
Normalmente, git init se ejecuta una sola vez al comenzar un proyecto. Si clonaste un repositorio con git clone, no necesitas volver a inicializarlo.
3. Deshacer o recuperar cambios
Estos comandos requieren un poco más de cuidado. Si tienes dudas, ejecuta primero git status.
| Comando | ¿Para qué sirve? |
|---|---|
git restore archivo.md | Descarta los cambios locales sin preparar de ese archivo. Puede perder esos cambios. |
git restore --staged archivo.md | Quita un archivo del área de preparación, pero conserva sus cambios en el directorio de trabajo. |
git revert HASH | Crea un nuevo commit que revierte los cambios de un commit anterior. |
git stash | Guarda temporalmente cambios locales para dejar el directorio de trabajo limpio. |
git stash pop | Recupera los cambios guardados con stash y los retira de la lista si se aplican correctamente. |
Importante: evita usar git reset --hard si no estás seguro de lo que hace. Puede descartar cambios locales de forma difícil de recuperar. También conviene evitar reescribir commits que otras personas ya estén usando.
4. Archivos que no deberían subirse
El archivo .gitignore indica qué archivos o carpetas Git debe ignorar. En un proyecto de Node.js/VitePress, por ejemplo:
gitignore
node_modules/
docs/.vitepress/dist/
docs/.vitepress/cache/
.env
.env.*
!.env.exampleEsto evita subir dependencias instaladas, archivos generados y archivos de entorno que podrían contener secretos. .gitignore no deja de rastrear archivos que ya están siendo seguidos por Git; para eso hay que retirarlos del índice con un comando como git rm --cached archivo.
Nunca subas contraseñas, tokens, claves privadas ni credenciales al repositorio.
5. Problemas comunes
“Not a git repository”
Estás fuera de la carpeta del proyecto o esa carpeta no tiene un repositorio inicializado.
bash
cd ruta/a/tu/proyecto
git statusSi es un proyecto nuevo que todavía no usa Git, puedes inicializarlo con git init.
“Nothing to commit”
Git no detecta cambios nuevos que guardar. Comprueba:
bash
git statusQuizá no hayas modificado archivos, o los archivos estén siendo ignorados.
“The current branch has no upstream branch”
La rama local todavía no está vinculada con una rama remota. Si el remoto se llama origin y la rama es main:
bash
git push -u origin main“Updates were rejected”
El repositorio remoto tiene cambios que tu rama local aún no integra. Revisa el mensaje completo y el estado antes de actuar. A menudo se resuelve integrando primero los cambios remotos, pero no uses push --force a ciegas.
6. Rutina corta para el día a día
Cuando termines de trabajar en tus apuntes:
bash
git status
git diff
git add .
git status
git commit -m "Describe el cambio"
git pushSi quieres publicar cambios en la wiki, git push envía tus commits a GitHub. Si configuraste Cloudflare Pages para desplegar desde esa rama, Cloudflare podrá iniciar una nueva compilación automáticamente.
Mini chuleta
- ¿Qué cambió?
git status - ¿Qué diferencias hay?
git diff - Preparar cambios:
git add . - Guardar una versión:
git commit -m "mensaje" - Subir a GitHub:
git push - Traer cambios del remoto:
git pull - Ver historial:
git log --oneline - Cambiar de rama:
git switch nombre-rama - Crear una rama:
git switch -c nombre-rama - Ver el remoto:
git remote -v