Una chuleta de comandos Git



En este post os dejamos una chuleta de los comandos más usados al trabajar con GIT:

## Bajarse a local un repositorio
    git clone <URL_REPO>
    git clone <URL_REPO> nombreCustom
## Comprobar el estado del repositorio local
    git status
## Descargarse cambios del repositorio remoto (origin)
    git pull
## Hacer un commit en local y enviar los cambios al repo remoto
    git add.; git commit -m "Mensaje del commit"; git push;
    git commit -am "Mensaje del commit"; git push; // equivalente al de arriba
## Crear una nueva rama en local (desconectada de remoto)
    git checkout -b <nuevo_nombre_rama_local>
## Ver ramas creadas (en local/remoto)
    git branch     // solo locales
    git branch -a  // locales y remotas
    git branch -r  // solo remotas
## Ver informacion detallada de una rama
    git branch -vv
## Borrar una rama local
    git branch -d <nombre_rama_local>
## Para conectar una rama local a una nueva rama remota
    git push --set-upstream origin <nuevo_nombre_rama_remota>
## Para crear en local una rama conectada a una existente en remoto
    git checkout --track origin/<nombre_rama_remota>
    git checkout -b <local_name> <remote_name>
    (git checkout -b develop origin/develop)
## Añadir mas cambios al ultimo commit (forzado)
    git add.; git commit --amend --no-edit; git push -f;
## Para ver los commits en consola
    git log
    git log --oneline
## Para almacenar en una pila local temporal cambios no commiteados
    git stash         // almacenar en la pila los cambios
    git stash list    // listar los cambios almacenados en pila
    git stash pop     // recuperar los cambios almacenados en pila
## Para hacer un commit vacio
    git commit --allow-empty -m "forzar lanzar pipeline"
## Mergear cambios de una rama1 a una rama2
    git checkout rama1; git pull;  // bajarse todo en rama1
    git checkout rama2; git merge rama1; // ir a rama 2 y mezclar
    git push    // publicar en rama2 remota los cambios
## Abortar un merge
    git merge --abort
## Mergear todos los commits de una rama en uno solo
    git log --oneline
    git rebase -i HEAD~3
## Ver cual es el repo remoto
    git remote show origin
## Unificar todos los cambios de una rama en 1 solo
    git checkout <nombre_rama>
    git reset --soft HEAD~$(git rev-list --count HEAD ^master)
    git add -A
    git commit -m "one commit on nombre_rama"
    // ahora mergear master a tu rama
## Para limpiar/descartar cambios commiteados pero no pusheados
   git reset --soft HEAD~  // Permanecen en local sin commitear
   git reset HEAD~ // Undo and unstage
   git reset HEAD .    // Unstage all added files
   git reset .         // Revert added files
## Para hacer squash en local de todos los commits en una rama
   git log // Buscar el ultimo commit que haya en master 
   // commit xxx123 (origin/master, origin/HEAD, master)
   git reset --soft xxx123
   git add .
   git commit -m "message"
   git push -f. // Forzamos la reescritura del histórico


Comentarios