Todas las herramientas
Gratis

Una referencia de Git imprimible y con búsqueda — configuración, ramas, fusiones, rebase, remotos, stash, etiquetas y deshacer cambios. Gratis.

Configuración

10
git config --global user.name "Jane Doe"
Establece el nombre asociado a tus commits
git config --global user.email "jane@example.com"
Establece el email asociado a tus commits
git config --global init.defaultBranch main
Hacer que los repos nuevos empiecen en la rama "main"
git config --global core.editor "code --wait"
Usar VS Code como editor por defecto de Git
git config --global pull.rebase true
Rebase en lugar de merge al hacer pull
git config --global alias.co checkout
Crear un alias de atajo (git co)
git config --global --list
Listar todos los valores de configuración global
git config user.email
Mostrar el email del repo actual
git config --global color.ui auto
Habilitar salida en color en la línea de comandos
git help <command>
Abrir la página de manual de un comando

Crear y clonar repos

9
git init
Inicializar un repo nuevo en la carpeta actual
git init my-project
Crear un repo nuevo en un directorio nuevo
git clone https://example.com/repo.git
Clonar un repo remoto por HTTPS
git clone git@example.com:user/repo.git
Clonar un repo remoto por SSH
git clone <url> my-dir
Clonar en un nombre de directorio específico
git clone --depth 1 <url>
Clon superficial con solo el último commit
git clone --branch dev <url>
Clonar y cambiar a una rama específica
git clone --recurse-submodules <url>
Clonar e inicializar todos los submódulos
git remote add origin <url>
Asociar un remoto a un repo local existente

Preparar y confirmar

11
git add file.txt
Preparar un solo archivo para el próximo commit
git add .
Preparar todos los cambios del directorio actual
git add -A
Preparar todos los cambios incluidas las eliminaciones
git add -p
Preparar interactivamente fragmentos seleccionados
git commit -m "Add login form"
Confirmar los cambios preparados con un mensaje
git commit -am "Fix typo"
Preparar archivos rastreados y confirmar en un paso
git commit --amend
Editar el commit más reciente
git commit --amend --no-edit
Añadir cambios preparados al último commit
git rm file.txt
Eliminar un archivo y preparar la eliminación
git mv old.txt new.txt
Renombrar o mover un archivo y prepararlo
git reset file.txt
Quitar un archivo del área de preparación sin perder cambios

Ramas

10
git branch
Listar todas las ramas locales
git branch -a
Listar ramas locales y de seguimiento remoto
git switch -c feature/login
Crear una rama nueva y cambiar a ella
git switch main
Cambiar a una rama existente
git checkout -b hotfix
Forma clásica de crear y cambiar de rama
git branch -m old-name new-name
Renombrar una rama
git branch -d feature/login
Eliminar una rama local fusionada
git branch -D feature/login
Forzar la eliminación de una rama local sin fusionar
git push origin --delete feature/login
Eliminar una rama en el remoto
git switch -
Volver a la rama anterior

Fusión y rebase

10
git merge feature/login
Fusionar una rama en la actual
git merge --no-ff feature/login
Fusionar creando siempre un commit de fusión
git merge --squash feature/login
Combinar una rama en un solo cambio preparado
git merge --abort
Cancelar una fusión con conflictos
git rebase main
Reaplicar los commits de la rama actual sobre main
git rebase -i HEAD~3
Editar interactivamente los últimos 3 commits
git rebase --continue
Reanudar un rebase tras resolver conflictos
git rebase --abort
Cancelar un rebase en curso
git cherry-pick <hash>
Aplicar un solo commit en la rama actual
git mergetool
Abrir una herramienta para resolver conflictos de fusión

Remotos y sincronización

11
git remote -v
Listar los remotos configurados y sus URLs
git remote add upstream <url>
Añadir un segundo remoto llamado upstream
git remote set-url origin <url>
Cambiar la URL de un remoto existente
git fetch
Descargar cambios remotos sin fusionar
git fetch --all --prune
Hacer fetch de todos los remotos y eliminar ramas obsoletas
git pull
Hacer fetch e integrar los cambios remotos
git pull --rebase
Hacer pull y rebase de los commits locales encima
git push
Subir commits locales al remoto
git push -u origin main
Hacer push y establecer la rama de seguimiento upstream
git push --force-with-lease
Forzar el push de forma segura sin pisar a otros
git push origin --tags
Subir todas las etiquetas locales al remoto

Inspeccionar y comparar

10
git status
Mostrar archivos preparados, sin preparar y sin rastrear
git status -s
Mostrar el estado en formato corto y compacto
git diff
Mostrar cambios sin preparar respecto al índice
git diff --staged
Mostrar cambios preparados para el próximo commit
git diff main..feature
Comparar dos ramas
git diff HEAD~1 HEAD
Comparar el último commit con su padre
git show <hash>
Mostrar los detalles y el diff de un commit
git show HEAD:file.txt
Mostrar un archivo tal como estaba en un commit
git log --stat
Mostrar commits con resumen de archivos modificados
git shortlog -sn
Contar commits agrupados por autor

Deshacer cambios

10
git restore file.txt
Descartar cambios sin preparar de un archivo
git restore --staged file.txt
Quitar un archivo del área de preparación sin perder cambios
git restore --source=HEAD~1 file.txt
Restaurar un archivo desde un commit anterior
git checkout -- file.txt
Forma clásica de descartar cambios locales
git reset --soft HEAD~1
Deshacer el último commit y mantener los cambios preparados
git reset --mixed HEAD~1
Deshacer el último commit y dejar los cambios sin preparar
git reset --hard HEAD~1
Deshacer el último commit y descartar los cambios
git revert <hash>
Crear un commit nuevo que deshaga otro commit
git clean -fd
Eliminar archivos y directorios sin rastrear
git clean -nd
Previsualizar lo que clean eliminaría

Stash

10
git stash
Guardar cambios sin confirmar y limpiar el árbol
git stash push -m "wip"
Guardar cambios en stash con un mensaje descriptivo
git stash -u
Hacer stash incluyendo archivos sin rastrear
git stash list
Listar todos los conjuntos de cambios en stash
git stash show -p
Mostrar el diff del último stash
git stash apply
Reaplicar el último stash y conservarlo
git stash pop
Reaplicar el último stash y eliminarlo
git stash apply stash@{2}
Reaplicar un stash específico por índice
git stash drop stash@{0}
Eliminar una sola entrada de stash
git stash clear
Eliminar todas las entradas de stash

Etiquetas

9
git tag
Listar todas las etiquetas
git tag v1.0.0
Crear una etiqueta ligera en HEAD
git tag -a v1.0.0 -m "Release 1.0.0"
Crear una etiqueta anotada con un mensaje
git tag -a v1.0.0 <hash>
Etiquetar un commit pasado específico
git show v1.0.0
Mostrar los detalles de una etiqueta
git push origin v1.0.0
Subir una sola etiqueta al remoto
git push origin --tags
Subir todas las etiquetas locales al remoto
git tag -d v1.0.0
Eliminar una etiqueta localmente
git push origin --delete v1.0.0
Eliminar una etiqueta en el remoto

Registros e historial

12
git log
Mostrar el historial completo de commits
git log --oneline
Mostrar un log compacto de una línea por commit
git log --oneline --graph --all
Visualizar las ramas como un grafo ASCII
git log -p
Mostrar el historial de commits con diffs
git log --author="Jane"
Filtrar el historial por autor
git log --since="2 weeks ago"
Filtrar el historial por rango de fechas
git log --pretty=format:"%h %an %s"
Personalizar el formato de salida del log
git blame file.txt
Mostrar quién cambió cada línea por última vez
git reflog
Mostrar el historial de dónde ha estado HEAD
git bisect start
Iniciar una búsqueda binaria de un commit defectuoso
git bisect good <hash>
Marcar un commit como bueno durante el bisect
git bisect bad
Marcar el commit actual como defectuoso

Ninguna entrada coincide con “:q”.


¿Necesitas ayuda?
¿Encontraste un problema con esta herramienta? Avísanos.
Informar de un problema

Añade esta herramienta gratuita a tu propio sitio web: copia y pega el código de abajo.