Hoja de Trucos de Git
Última actualización
Configuración inicial
Configuración única para que tus commits se atribuyan correctamente.
| Comando | Qué hace |
|---|---|
git config --global user.name "Ada" | Establece el nombre de tus commits |
git config --global user.email you@x.com | Establece el correo de tus commits |
git config --list | Muestra toda la configuración actual |
git config --global init.defaultBranch main | Nombra main la primera rama de los nuevos repos |
git config --global core.editor "code --wait" | Establece tu editor por defecto |
git --version | Muestra la versión de Git instalada |
Crear y clonar
Inicia un nuevo repositorio o copia uno existente.
| Comando | Qué hace |
|---|---|
git init | Crea un nuevo repo en la carpeta actual |
git clone <url> | Copia un repo remoto localmente |
git clone <url> mydir | Clona en una carpeta con nombre |
git clone --depth 1 <url> | Clon superficial (solo el último commit) |
git clone -b dev <url> | Clona y cambia a la rama dev |
Preparar y confirmar (commit)
Registra los cambios en el historial del proyecto.
| Comando | Qué hace |
|---|---|
git add file.txt | Prepara un archivo |
git add . | Prepara todos los cambios del directorio actual |
git add -p | Prepara fragmentos seleccionados de forma interactiva |
git commit -m "message" | Confirma los cambios preparados |
git commit -am "message" | Prepara los archivos rastreados y confirma |
git commit --amend | Edita el último commit |
git rm file.txt | Elimina un archivo y prepara la eliminación |
Ramas
Trabaja en los cambios de forma aislada.
| Comando | Qué hace |
|---|---|
git branch | Lista las ramas locales |
git branch feature | Crea una nueva rama |
git switch feature | Cambia a una rama existente |
git switch -c feature | Crea y cambia en un solo paso |
git checkout feature | Forma antigua de cambiar de rama |
git branch -d feature | Elimina una rama ya fusionada |
git branch -m newname | Renombra la rama actual |
Merge y rebase
Combina el trabajo de dos ramas.
| Comando | Qué hace |
|---|---|
git merge feature | Fusiona feature en la rama actual |
git merge --no-ff feature | Crea siempre un commit de merge |
git rebase main | Reaplica tus commits sobre main |
git rebase -i HEAD~3 | Edita los últimos 3 commits de forma interactiva |
git rebase --continue | Continúa tras resolver conflictos |
git rebase --abort | Cancela un rebase en curso |
git cherry-pick <hash> | Aplica un commit en esta rama |
Remotos (push, pull, fetch)
Sincroniza tu repo local con un remoto como GitHub.
| Comando | Qué hace |
|---|---|
git remote -v | Lista los remotos configurados |
git remote add origin <url> | Enlaza un remoto llamado origin |
git fetch | Descarga los cambios remotos sin fusionar |
git pull | Descarga y fusiona la rama remota |
git push | Sube los commits al remoto |
git push -u origin main | Sube y establece la rama upstream |
git push origin --delete feature | Elimina una rama remota |
Inspeccionar (status, log, diff)
Mira qué cambió y qué está ocurriendo.
| Comando | Qué hace |
|---|---|
git status | Muestra archivos preparados, sin preparar y sin rastrear |
git log | Muestra el historial de commits |
git log --oneline --graph | Historial compacto con un gráfico de ramas |
git diff | Cambios sin preparar frente al índice |
git diff --staged | Cambios preparados frente al último commit |
git show <hash> | Muestra los cambios de un solo commit |
git blame file.txt | Muestra quién cambió por última vez cada línea |
Deshacer cambios
Recupérate de los errores de forma segura.
| Comando | Qué hace |
|---|---|
git restore file.txt | Descarta los cambios sin preparar de un archivo |
git restore --staged file.txt | Quita un archivo del área de preparación (conserva los cambios) |
git reset --soft HEAD~1 | Deshace el último commit, mantiene los cambios preparados |
git reset --hard HEAD~1 | Deshace el último commit y descarta los cambios |
git revert <hash> | Crea un nuevo commit que deshace otro |
git stash | Guarda los cambios para después |
git stash pop | Reaplica el stash más reciente |
Cada comando de Git que necesitas, en una sola página. Esta hoja de trucos de Git es una referencia rápida para el control de versiones diario: configurar Git, preparar y confirmar (commit), crear ramas, hacer merge y rebase, sincronizar con remotos y deshacer errores.
Estos son comandos estándar de Git que funcionan igual en Linux, macOS y Windows. Copia lo que necesites o pruébalos en vivo en el playground de terminal: una shell real en tu navegador, sin instalar nada.
Preguntas frecuentes sobre la hoja de trucos de Git
¿Esta hoja de trucos de Git es gratis?
¿Cuál es la diferencia entre merge y rebase?
git merge combina dos ramas creando un nuevo commit de merge que une sus historiales, preservando el historial exacto de ambas. git rebase, en cambio, reaplica tus commits uno por uno sobre otra rama, produciendo un historial lineal sin commit de merge. El merge es seguro y no destructivo; el rebase genera un historial más limpio pero reescribe los commits, así que evita hacer rebase de ramas que otros ya hayan descargado.¿Cómo deshago un commit en Git?
git reset --soft HEAD~1 deshace el último commit pero mantiene los cambios preparados, mientras que git reset --hard HEAD~1 los descarta por completo. Para un commit que ya está compartido, usa git revert <hash> para crear un nuevo commit que lo revierte sin reescribir el historial.