By Jorge Arias.
- Obtener Ayuda
- Configurar
- Agregar al Staging Area
- Comprobar cambios
- Comparar cambios
- Commit
- Log
- Ramas
- Remotos
- Tags
- Comandos avanzados (con precaución)
git <command> --helpgit help <command>man git-<command>git config --global user.name "John Doe" # Definir nombre global de Gitgit config --global user.email johndoe@example.com # Definir email global de Gitgit config --list # Listar parámetros de configuracióngit config --global core.editor vim # Configurar editor predeterminadogit config --global merge.tool vimdiff # Configurar herramienta para resolver conflictosgit config --global alias.<name> 'command' # Crear un alias para gitNota: Configuración global se guarda en ~/.gitconfig. Si no se define --global la configuración será para el repositorio y se guardará en .git/config.
git add [file|folder] ...git add -u [file|folder] ... # Agrega automáticamente archivos con seguimientogit rm [file|folder] ... # Remover archivos de git y discogit rm --cached [file|folder] ... # Remover del staging areagit statusgit status -v # Mostrar con detalle de modificacionesgit diff [--cached|--staged] # Preparados contra último commitgit diff <commit1> <commit2> # Entre dos commitsgit diff --check # Mostrar espacios agregados que pueden causar problemas. Se recomienda excluir espacios redundantes en líneas.git diff <commit1> <commit2> [path] # Entre dos commits para un archivo o foldergit commit # Agregar commit a la historiagit commit -m 'Message' # Agregar con mensaje directamentegit commit --amend # Agregar commit a la historia
# Equivale a git reset --soft HEAD^ y luego git commit -c ORIG_HEADgit commit [-a|--all] # Agrega todos los archivos agregados y modificados y luego confirmagit commit [-v|--verbose] # Muetra el diff en el editorNota: Los commits no se eliminan implícitamente
git log # Mostrar historial de commitsgit log --stat # Mostrar con detalle de dirferencias de archivosgit log --since=2.weeks # Mostrar commits más recientes hasta indicado
git log --since=12.hoursgit log <branch1>..<branch2> # Mostrar cambios introducidos desde <branch1> a <branch2>git log <branch1> --not <branch2> # Muestra commits de <branch1> excluyendo los que pertenecen a <branch2>git log --oneline # En una línea hash y subjectgit log --decorate # Incluyendo posición de referencias (ramas/tags)git log --graph # Mostrar representación gráfica de historiagit log --all # Mostrar todos los commits con referenciagit branch # Mostrar ramasgit branch -vv # Mostrar ramas con SHA1 y commit subject linegit branch <nombre> # Crear rama con puntero a posición actualgit branch -d <nombre> # Eliminar rama (--delete)git branch -D <nombre> # Forzar eliminar rama (--delete --force)git branch --merged # Mostrar ramas fusionadas a la actual. Con * si aún no se incorporan últimos cambiosgit branch --no-merged # Mostrar ramas que no han sido incorporadas a la actualgit branch -m <new-name> # Mover/renombrar una rama y su correspondiente refloggit checkout <rama> # Cambiar a ramagit checkout -b <rama> # Cambiar a rama y crear si no existegit merge <rama> # Fusionar <rama> con posición actualgit merge --no-ff # Fusionar evitando fast-forwardgit clone <repository> [<directory>] # Clonar ruta de repositorio a directorio si se define, sino usa nombre del repositoriogit remote show # Ver repositorios remotosgit remote -v # Ver repositorios remotos con detallegit remote add <name> <repository/url> # Agrega repositorio remotogit remote rm <name> # Elimina remotogit remote rename <old-name> <new-name> # Cambiar nombregit fetch <repository> # Descargar objetos y referencias de repositorio remotogit pull <repository> <ref> # Hacer Fetch y luego Merge a la rama o referencia remotagit push <repository> <ref> # Publicar cambios de rama o referencia y objetos asociadosgit push <repository> --all # Publicar todas las ramasgit tag # Mostrar etiquetas actualesgit tag -l 'v1.8.5*' # Mostrar buscando expresión regulargit tag -a v1.4 -m 'Mensaje de version' # Crear tag con mensaje opcionalgit reflog show # Mostrar log de referencias (Recorrido de HEAD)git reflog expire --expire-unreachable=<time> # Quitar del reflog commits no referenciados por ramas ni reflog. Predeterminado 30 días, --expire-unreachable=all expira de todos los tiempos.git gc # Limpiar y optimizar repositorio. Primero limpiar reflog para eliminar commits no referenciados.