Skip to content

Comandos de Git explicados

Los comandos de Git que de verdad usas, agrupados por tarea: crear un repositorio, guardar instantáneas, crear ramas y fusionar, leer el historial, compartir con un remoto, deshacer errores, guardar trabajo en el stash y gestionar archivos y submódulos. Cada fila empareja el comando con una invocación realista.

Git tiene cientos de comandos, pero el trabajo diario solo necesita unos pocos. El modelo mental es: el árbol de trabajo son tus archivos, el índice (área de preparación) es el siguiente commit, y HEAD es el commit actual. Preparas, confirmas, compartes. Lee el status a menudo. Todo lo que sigue asume que un comando ya existe si aparece listado.

Tabla de referencia · 55 entradas
55 of 55 rows
Configuración inicial
Configura tu nombre, correo o editor una vez para todos los repositorios.git config --global user.name "Ada"
Define un atajo para un comando que escribes a menudo.git config --global alias.co checkout
Crea un repositorio nuevo en la carpeta actual.git init
Copia un repositorio remoto a tu máquina.git clone git@github.com:org/repo.git
Copia solo los commits más recientes de una sola rama.git clone --depth 1 --single-branch git@github.com:org/repo.git
Instantáneas básicas
Muestra qué está preparado, modificado y sin rastrear.git status -sb
Prepara los cambios para que entren en el siguiente commit.git add src/app.ts
Revisa los cambios fragmento a fragmento y prepara solo los que aceptas.git add -p src/app.ts
Prepara los cambios de todos los archivos rastreados sin añadir archivos nuevos.git add -u
Registra los cambios preparados como un commit nuevo.git commit -m "fix: null check"
Reemplaza el último commit por uno corregido.git commit --amend -m "fix: handle empty input"
Muestra los cambios sin preparar, o los preparados con --staged.git diff --staged
Muestra todos los cambios desde el último commit, estén preparados o no.git diff HEAD
Ramas y fusiones
Lista, crea o elimina ramas.git branch feature-x
Elimina una rama fusionada (-D lo fuerza, -a lista todas las ramas).git branch -d feature-x
Cambia de rama (el sustituto moderno de checkout).git switch feature-x
Crea una rama nueva y cambia a ella en un solo paso.git switch -c feature-x
Cambia de rama o restaura archivos (el comando antiguo y más amplio).git checkout feature-x
Trae los cambios de otra rama a la rama actual.git merge feature-x
Cancela una fusión con conflictos y devuelve la rama a su estado anterior.git merge --abort
Reproduce los commits de la rama actual encima de otra rama.git rebase main
Fusiona, reordena o edita commits mientras se reproducen.git rebase -i main
Copia un commit concreto de otra rama a esta.git cherry-pick a1b2c3d
Marca un commit con una etiqueta legible, como una versión.git tag -a v1.2.0
Extrae otra rama en una carpeta separada al mismo tiempo.git worktree add ../repo-feature feature-x
Inspeccionar el historial
Recorre el historial de commits.git log --oneline --graph --decorate
Recorre el historial de todas las ramas, no solo la actual.git log --oneline --graph --all
Muestra el diff completo y el mensaje de un commit.git show HEAD
Muestra quién cambió por última vez cada línea de un archivo.git blame src/app.ts
Muestra todos los commits a los que HEAD ha apuntado, incluidos los descartados.git reflog
Busca en el historial por mitades para encontrar el commit que rompió algo.git bisect start
Resume los commits por autor.git shortlog -sn
Nombra el commit actual contando desde la etiqueta más cercana.git describe --tags
Colaboración con remotos
Lista o añade repositorios remotos.git remote add origin <url>
Lista los remotos con sus URLs de fetch y push.git remote -v
Descarga cambios del remoto sin tocar tus ramas.git fetch origin
Descarga cambios y elimina las referencias a ramas remotas borradas.git fetch --prune
Descarga y fusiona los cambios remotos de la rama actual.git pull --rebase
Envía los commits locales al remoto.git push -u origin feature-x
Sobrescribe la rama remota, pero solo si nadie hizo push antes.git push --force-with-lease origin feature-x
Deshacer cambios
Descarta los cambios del árbol de trabajo, o los saca del índice.git restore src/app.ts
Saca un archivo del índice y conserva sus ediciones en el árbol de trabajo.git restore --staged src/app.ts
Mueve la punta de la rama actual y opcionalmente el índice.git reset --hard HEAD~1
Añade un commit nuevo que deshace uno anterior (seguro de compartir).git revert HEAD
Elimina archivos y carpetas sin rastrear.git clean -fd
Stash
Guarda el trabajo sin confirmar y reinicia el árbol de trabajo.git stash -u
Muestra todos los stashes que has guardado.git stash list
Reaplica un stash y lo conserva guardado.git stash apply stash@{1}
Elimina un stash que ya no necesitas.git stash drop stash@{1}
Reaplica el stash más reciente y lo elimina.git stash pop
Archivos y submódulos
Mueve o renombra un archivo y prepara el cambio.git mv old.ts src/new.ts
Elimina un archivo y prepara la eliminación.git rm src/old.ts
Rastrea otro repositorio como una carpeta dentro de este.git submodule add git@github.com:org/lib.git lib
Extrae solo las carpetas que nombras de un repositorio grande.git sparse-checkout set src docs
Exporta el árbol de un commit como archivo tar o zip.git archive -o repo.zip HEAD