Guía rápida de Git

Los comandos de Git que de verdad usa, agrupados por tarea, con una tabla para deshacer los errores habituales y hábitos que mantienen limpio el historial.

Última revisión:

AdSense Placeholder
Slot: header_reference_page
En esta página

Git registra instantáneas de un proyecto. Importan tres lugares: el árbol de trabajo (sus archivos), el área de preparación (lo que irá en el próximo commit) y el repositorio (el historial guardado). La mayoría de los comandos mueven cambios entre ellos. Todos los comandos de abajo se comprobaron con una instalación real de Git.

Comandos por tarea

Configurar

Comando Qué hace
git config --global user.name "Ana" Fija el nombre guardado en sus commits
git init Crea un repositorio nuevo en esta carpeta
git clone <url> Copia un repositorio remoto con su historial

Guardar cambios

Comando Qué hace
git status Muestra archivos modificados, preparados y sin seguimiento
git add <file> Prepara un archivo para el próximo commit (git add -p prepara fragmentos elegidos)
git commit -m "message" Registra los cambios preparados con un mensaje
git commit --amend Reescribe el último commit (mensaje o contenido); solo antes de publicarlo
git diff Muestra los cambios sin preparar (--staged para los preparados)

Ramas

Comando Qué hace
git branch Lista las ramas (-d nombre borra una ya fusionada)
git switch <branch> Cambia a otra rama (-c nombre la crea antes)
git merge <branch> Fusiona otra rama en la actual
git rebase <branch> Reaplica sus commits sobre otra rama (-i edita, une, reordena)
git cherry-pick <commit> Copia un commit en la rama actual

Remotos

Comando Qué hace
git remote -v Lista los repositorios remotos y sus URL
git fetch Descarga commits nuevos sin cambiar sus archivos
git pull --rebase Descarga y reaplica sus commits locales encima (historial más limpio que una fusión)
git push -u origin <branch> Publica una rama y la recuerda para git push a secas
git push --force-with-lease Sobrescribe la rama remota solo si nadie más publicó entretanto

Inspeccionar

Comando Qué hace
git log --oneline --graph Historial compacto con líneas de ramas
git show <commit> Muestra un commit y sus cambios
git blame <file> Muestra quién cambió cada línea por última vez
git grep "text" Busca en los archivos con seguimiento
git bisect start Busca por bisección el commit que rompió algo

Deshacer

Comando Qué hace
git restore <file> Descarta cambios de un archivo (--staged lo saca de lo preparado)
git revert <commit> Añade un commit nuevo que deshace uno antiguo; seguro en historial compartido
git reset --soft HEAD~1 Deshace el último commit manteniendo sus cambios preparados
git reset --hard <commit> Mueve la rama y descarta todos los cambios posteriores: destructivo
git reflog Lista dónde ha estado HEAD; el camino de vuelta de la mayoría de errores
git clean -fd Borra archivos y carpetas sin seguimiento; pruebe -n antes

Stash y etiquetas

Comando Qué hace
git stash push -u Aparca su trabajo en curso, incluidos los archivos sin seguimiento
git stash pop Recupera el último stash y lo elimina
git tag -a v1.0 -m "Release" Marca una versión con una etiqueta anotada

Deshacer errores

Situación Solución
Edité un archivo y quiero la versión anterior git restore <file>
Preparé el archivo equivocado git restore --staged <file>
El mensaje de mi último commit tiene una errata git commit --amend
Hice commit en la rama equivocada git switch <rama-correcta>, git cherry-pick <commit> y luego git reset --hard HEAD~1 en la rama equivocada
Publiqué un commit malo que otros ya descargaron git revert <commit>
Hice un reset o rebase y perdí commits git reflog y luego git reset --hard <hash-anterior>

Los comandos que reescriben el historial (reset --hard, rebase, push --force) son seguros con commits que solo usted tiene. Cuando otros ya los descargaron, prefiera git revert.

Buenos hábitos

  • Haga commits pequeños y relacionados con un mensaje que diga por qué, en imperativo: «Corrige la redirección de inicio de sesión».
  • Haga pull o fetch antes de push y use --force-with-lease en lugar de --force.
  • Mantenga los secretos fuera del repositorio. Una contraseña confirmada queda en el historial aunque borre el archivo. Use un .gitignore para la salida de compilación y archivos locales: el Generador de .gitignore escribe uno para su stack.
  • Use git status constantemente. También le indica el siguiente comando.

Vea Git para la idea detrás de la herramienta y Guía rápida de la línea de comandos de Linux para los comandos de shell que usará junto a ella.

Pruebe estas herramientas

Véase también

  • Glosario Git
    Git es un sistema de control de versiones distribuido que registra instantáneas de los archivos de un proyecto para poder seguir los.
  • Guía rápida Guía rápida de la línea de comandos de Linux
    Comandos de terminal para archivos, búsqueda, texto, procesos, disco, red y archivos comprimidos, más tuberías, redirecciones.
AdSense Placeholder
Slot: footer_leaderboard