Documentación
Recetas
Configuración
- Configurar git para el usuario:
git config --global user.name "Pipo Perez"
git config --global user.email "pperez@servidor.com" # Un mail que se pueda publicar
git config --global color.ui auto
git config --global core.editor vim
Colores personalizados
Básicos
- Inicializar un repositorio local
mkdir foobar
cd foobar
git init
git add archivo
git rm archivo
- Agregar cambios en un archivo
git add archivo
git status
git commit -m "Comentario"
Borrando archivos y enmendando el último commit
- Para sacar un archivo de el área de staging (si le hicimos "git add" por accidente):
git reset HEAD <archivo>
- Para deshacer los cambios de un archivo que no está commited:
git checkout -- <archivo>
- Si faltó agregar o borrar algún archivo, o la descripción del último commit tiene errores:
git commit --amend
- Para corregir el nombre y dirección de autor del commiter:
git commit --amend --author "Nombre Apellido <napellido@email.com>"
git reset --hard HEAD~1
git push --force origin HEAD
Remotos
- Agregando servidores remotos
git remote add origin
- Push (enviar cambios) del branch master a un remoto
git push origin master
- Pull (recibir cambios) desde el branch master de un remoto
git pull origin master
- Para configurar servidor origin y branch master por defecto para los push y pull, hay que ejecutar alguno de los siguientes comandos una sola vez:
git push --set-upstream origin master
git push -u origin master
Remotos con tags y branches
- Push de todos los branches (locales) y push de todos los tags:
git push --all
git push --tags
- Push de todas las refs (branches, tags y branches remotos):
git push --mirror
- Eliminar una ref en un remoto:
git push --delete nombre_branch
git push :nombre_branch
Diffs y logs
- Comparar con commits anteriores:
git diff HEAD~1 # Commit padre
git diff HEAD~2 # Commit padre del commit padre
git diff HEAD^1 # Commit de un padre (para merges)
git diff HEAD^2 # Commit de otro padre (para merges)
- Ver logs con dibujos de los branchs:
git log --graph --decorate
- Ver quién modificó cada línea:
git blame archivo
- Ver qué cambió en cada commit:
git whatchanged
- Distintas formas de especificar una revisión:
http://git-scm.com/docs/gitrevisions.html
- Ver la historia de commits:
http://git-scm.com/book/en/Git-Basics-Viewing-the-Commit-History
Eliminando archivos de la historia de Git (no hacer a menos que se justifique)
https://help.github.com/articles/remove-sensitive-data