Hoja de trucos y alias de Git
Esta publicación presenta los comandos de Git más importantes y utilizados para una fácil referencia, además de algunos alias de Git útiles.
- Configuración
- Organización
- Escenario e instantánea
- Almacenar
- Rama y fusión
- Inspeccionar y comparar
- Compartir y actualizar
- Reescribir la historia
- Alias de Git útiles
Configuración
Asigna tu nombre de usuario globalmente.
git config --global user.name "[first_name last_name]"
Asigna tu dirección de email globalmente.
git config --global user.email "[email_address]"
Asigna un coloreado automático de la línea de comandos para revisar Git fácilmente.
git config --global color.ui auto
Lista todos tus alias de Git.
git config --get-regexp ^alias\.
Organización
Inicializa un directorio existente como un repositorio de Git.
git init
Recupera un repositorio remoto vía URL.
git clone [url]
Escenario e instantánea
Muestra los archivos modificados en el directorio de trabajo.
git status
Añade un archivo tal como está actualmente al escenario para tu siguiente commit.
git add [file]
Añade todos los archivos tal como están actualmente al escenario para tu siguiente commit.
git add .
Elimina un archivo del directorio actual y el repositorio, añadiendo al escenario la eliminación.
git rm [file]
Mueve o renombra un archivo o directorio en tu repositorio.
git mv [file_or_directory]
Pone un archivo fuera del escenario mientras mantiene los cambios en el directorio de trabajo.
git reset [file]
Pone todos los archivos fuera del escenario.
git reset .
Descarta los cambios hechos a un archivo.
git checkout [file_name]
Descarta los cambios hechos a todos los archivos.
git checkout .
Diferencia de qué ha cambiado pero no se ha añadido al escenario.
git diff
Diferencia de qué se ha añadido al escenario pero aún no está en un commit.
git diff --staged
Añade el contenido del escenario como una nueva instantánea.
git commit -m "[meaningful_message]"
Almacenar
Almacena los cambios modificados y añadidos al escenario (pila)
git stash
Lista todos los cambios almacenados en orden de pila.
git stash list
Obtiene los archivos modificados de la cima de la pila.
git stash pop
Descarta los cambios desde la cima de la pila.
git stash drop
Rama y fusión
Lista las ramas. Un asterisco aparecerá junto a la rama actual.
git branch
Crea una nueva rama en el commit actual.
git branch [branch_name]
Cambia a otra rama y revisa el directorio de trabajo.
git checkout [branch_name]
Crea una nueva rama y cambia a ella.
git checkout -b [branch_name]
Fusiona la historia de la rama especificada en la rama actual.
git merge [branch]
Inspeccionar y comparar
Muestra el historico de commits para la rama actual.
git log
Muestra los commits en branch_a
que no están en branch_b
.
git log branch_b..branch_a
Muestra los commits que cambiaron un fichero, incluso a través de renombrados.
git log --follow [file]
Muestra la diferencia de qué hay en branch_a
pero no hay en branch_b
.
git diff branch_b..branch_a
Muestra los detalles del commit actual, incluyendo sus cambios.
git show
Muestra los detalles del commit especificado, incluyendo sus cambios.
git show [commit_sha]
Compartir y actualizar
Añadir una URL de Git como un alias. El alias más común es origin
.
git remote add [alias] [url]
Traer todas las ramas del repositorio remoto.
git fetch
Traer y fusionar los commits desde la rama remota.
git pull
Fusionar una rama remota con la rama actual para actualizarla.
git merge [alias]/[branch]
Empujar los commits de la rama local a la rama del repositorio remoto.
git push
Empujar los commits de la rama local a una nueva rama en el repositorio remoto.
git push -u [alias] [branch]
Reescribir la historia
Aplicar los commits de la rama actual antes de la rama especificada.
git rebase [branch]
Limpiar el área de staging, reescribir el árbol de trabajo a partir del commit especificado (rollback)
git reset --hard [commit]
Incluir los cambios del escenario en el último commit.
git commit --amend
Hacer cambios en un commit pasado (no recomendado cuando hay más personas trabajando sobre la rama de la que viene el commit)
- Hacer un rebase interactivo del commit a editar.
git rebase -i [commit_sha]~
- Cambiar el commit que se desea editar de
pick
aedit
.
edit 8a62da1 commit_to_edit
pick 9ee3178 next_commit
pick 9cca210 next_commit
- Una vez hechos los cambios, añadirlos al escenario y realizar un
ammend
.
git add .
git commit --amend
- Finalizar el rebase.
git rebase --continue
- En caso de que se hubiese empujado al repositorio remoto anteriormente, habrá que forzar el nuevo empuje.
git push --force
Alias de Git útiles
Atajo para listar todos los alias.
git config --global alias.aliases "config --get-regexp '^alias\.'"
Atajo para listar todas las configuraciones globales.
git config --global alias.g "config --global -l"
Atajo de status.
git config --global alias.s "status"
Atajo de commit.
git config --global alias.c "commit -m"
Atajo de diff.
git config --global alias.d "diff"
Atajo de push.
git config --global alias.p "push"
Atajo de log con gráfico.
git config --global alias.l "log --graph --pretty=format:'%C(red)%h%C(reset) -%C(yellow)%d%C(reset) %s %C(green)(%cr) %C(magenta)<%an>%C(reset)' --abbrev-commit --date=relative"
Escrito por Samuel de Vega.