Git Cheatsheet

Configuracion inicial

Configurar email

$ git config --global author.email <my emails>

Configurar nombre

$ git config --global author.name "<my name>"

Configurar mergetool

$ git config --global merge.tool opendiff

Inicializar repositorio

Inicializar control de versiones en el directorio actual

$ git init .

Clonar repositorio existente

$ git clone <remote url .git>

Adds & Commits

Agregar archivos al control de versiones

$ git add <file>

Agregar cambios selectivamente al control de versiones

$ git add <file> -p

Realizar un commit

$ git commit -m "here goes a message"

Repositorios remotos

Agregar repositorio remoto

$ git remote add <remote_name> <git repo url>

Descargar todas las ramas

$ git fetch

Descargar cambios a repositorio remoto

$ git pull <remote_name> <branch>

Subir cambios a repositorio remoto

$ git push <remote_name> <branch>

Informacion

Status actual de cambios

$ git status

Diferencias en cambios

$ git diff

Historial de cambios

$ git log

Historial de cambios en una sola linea

$ git log --oneline

Branches

Crear branch

$ git branch <my-branch-name>

Renombrar branch actual

$ git branch -m <my-new-branch-name>

Borrar rama local

$ git branch -D <branch name>

Borrar rama remota

$ git push <remote> :<branch name>

Moverse a rama

$ git checkout <branch-name>

Moverse a rama y crearla

$ git checkout -b <branch-name>

Poner cambios en la rama temporal stash

$ git stash

Extraer de pila de la rama temporal

$ git stash pop

Merge & Rebase

Combinar branch a la rama actual

$ git merge <branch name>

Rebasar cambios en local

$ git rebase <branch name>

Poner los cambios de la rama adelante de una rama remota

$ git pull --rebase <remote> <branch name>

Comandos Avanzados

Squash commits con autorebase

$ git rebase -i <commit hash>

Cherry Pick

$ git cherry-pick <commit hash>