Esta hoja de referencia resume los comandos Git más usados en tu día a día.
- Configuración Inicial
- Flujo Básico (Día a Día)
- Navegación en el Historial y Versiones
- Ramas (Branching)
- Remotos
- Etiquetas (Tags) y Lanzamientos (Releases)
- Guardar Cambios Temporales
- Deshacer Cambios (Reset, Restore, Revert)
- Comandos Avanzados
- Ejemplos Prácticos Rápidos
git config --global user.name "Tu Nombre"
git config --global user.email "tuemail@example.com"
git config --global core.editor "nombre_de_editor" # Configurar el editor por defecto
git config --list # Ver todas las configuracionesgit clone <url_del_repositorio> # Clonar un repositorio
git status # Ver estado de cambios
git add <archivo> # Añadir un archivo al área de Staging
git add . # Añadir todos los cambios en el directorio actual
git commit -m "Mensaje" # Confirmar cambios al repositorio local
git commit --amend # Modificar el último commit (mensaje o contenido)
git push # Enviar cambios al repositorio remoto
git pull # Descargar e integrar cambios desde el remotoConsejo: Usa git status con frecuencia para saber en qué estado están tus archivos.
git log # Ver historial de commits (presiona q para salir)
git log --oneline --graph # Ver historial resumido y con grafo
git show <commit> # Mostrar detalles de un commit en específico
git diff # Comparar cambios entre el área de trabajo y Staging
git diff HEAD^ HEAD # Comparar cambios entre el último commit y el anteriorgit branch # Listar ramas locales
git branch <nombre_rama> # Crear nueva rama
git checkout <nombre_rama> # Cambiar a la rama
git switch <nombre_rama> # Otra forma de cambiar de rama (Git 2.23+)
git checkout -b <nueva_rama> # Crear y cambiar a una nueva rama
git switch -c <nueva_rama> # Crear y cambiar de rama (Git 2.23+)
git merge <nombre_rama> # Fusionar rama en la rama actual
git branch -d <rama> # Eliminar una rama ya fusionadagit remote -v # Ver remotos configurados
git remote add origin <url> # Añadir un repositorio remoto
git fetch # Descargar cambios sin fusionar
git push -u origin <rama> # Asocia la rama local con la remota y empuja cambios
git pull --rebase # Descargar cambios y rebasear (evitar merges automáticos)git tag <etiqueta> # Añadir etiqueta ligera a un commit actual
git tag -a v1.0 -m "Versión 1.0" # Crear etiqueta anotada con mensaje
git tag # Listar etiquetas
git push origin --tags # Enviar todas las etiquetas al remotogit stash # Guardar cambios actuales sin commitear
git stash list # Ver lista de stashes
git stash apply # Aplicar el stash más reciente
git stash pop # Aplicar y eliminar el stash más recientegit restore <archivo> # Deshacer cambios en el área de trabajo
git restore --staged <archivo> # Sacar cambios del área de Staging
git reset <commit> # Mover la rama actual a un commit anterior (mantiene cambios)
git reset --hard <commit> # Mover la rama y descartar cambios locales
git revert <commit> # Crear un commit inverso para deshacer un cambio anterior sin reescribir el historialgit rebase <rama/base> # Reaplicar commits sobre otro punto en el historial
git rebase -i <commit/base> # Rebase interactivo, reordenar, combinar o eliminar commits
git cherry-pick <commit> # Aplicar un commit específico en la rama actual
git blame <archivo> # Mostrar autoría línea a línea de un archivo
git reflog # Ver el registro de todos los movimientos de HEAD (muy útil para recuperar commits "perdidos")
git bisect # Búsqueda binaria en el historial para encontrar el commit que introdujo un bugA continuación se muestran ejemplos sencillos del uso de los comandos. Estos ejemplos no cubren todas las opciones, pero sirven para ver cómo se usan en la práctica:
-
Configurar tu usuario:
git config --global user.name "Maria Perez" git config --global user.email "maria@example.com"
-
Clonar y revisar estado:
git clone https://github.com/usuario/proyecto.git cd proyecto git status -
Agregar y confirmar cambios:
echo "Nuevo contenido" >> archivo.txt git add archivo.txt git commit -m "Agrego archivo.txt con nuevo contenido"
-
Enviar cambios al remoto:
git push
-
Crear y cambiar a una nueva rama:
git checkout -b feature/nueva-funcion # Ahora estás en la rama "feature/nueva-funcion" -
Fusionar una rama:
git checkout main git merge feature/nueva-funcion
-
Revertir un commit:
git revert <sha_del_commit> # Crea un nuevo commit que deshace los cambios anteriores.
-
Stash y recuperación:
# Tienes cambios sin confirmar, pero debes cambiar de contexto rápidamente git stash # Más tarde... git stash pop
-
Rebase interactivo:
git rebase -i HEAD~3 # Rearranca los últimos 3 commits, permitiendo reordenar y combinar. -
Ver historial resumido:
git log --oneline --graph