Introducción
Git recompensa la fluidez en línea de comandos. Unos pocos hábitos pequeños hacen el trabajo diario dramáticamente más rápido y seguro. Esta página recopila los consejos de mayor impacto para usuarios nuevos.
Siempre sabe dónde estás
Añade el status de Git a tu prompt de shell. Bash y Zsh ambos incluyen scripts contrib:
# bash
source /usr/share/git/completion/git-prompt.sh
PS1='\w$(__git_ps1 " (%s)")\$ '
# zsh con oh-my-zsh: habilita el plugin git en ~/.zshrc
Ahora el branch actual y el estado sucio son visibles en todo momento.
Tab completion
Git incluye git-completion.bash; la mayoría de los gestores de paquetes lo instalan automáticamente. Tab-completa comandos, branches, remotos y refs:
git che<TAB>
git switch fea<TAB>
Alias que valen la pena
git config --global alias.s "status -sb"
git config --global alias.lg "log --oneline --graph --decorate --all"
git config --global alias.co switch
git config --global alias.last "log -1 HEAD --stat"
git config --global alias.unstage "restore --staged"
Status más corto
git status -sb
La forma -sb es de dos columnas e incluye info de seguimiento del branch; perfecto para verificaciones rápidas.
Mejores diffs
git diff --word-diff
git diff --color-words
git config --global diff.colorMoved zebra
colorMoved=zebra resalta bloques de código movidos de manera diferente a los añadidos/eliminados, haciendo más fácil revisar refactors.
Entorno útil
- Establece
GIT_PAGER=less -FRXpara paginación razonable. - Establece
EDITORa algo del que sepas salir. - Usa un asistente de credenciales:
git config --global credential.helper cacheen Linux,osxkeychainen macOS,manageren Windows.
Valores predeterminados seguros
git config --global pull.ff only
git config --global push.autoSetupRemote true
git config --global fetch.prune true
git config --global rerere.enabled true
rerere ("reuse recorded resolution") recuerda cómo resolviste un conflicto y lo replica la próxima vez.
Leyendo el historial de commits a velocidad
Dos trucos de visualización pagan diariamente:
git log --oneline --graph --all --decorate
git log -p --follow path/to/file
git show HEAD --stat
git diff @{u} # vs upstream
git diff @{1.day.ago} # vs HEAD hace un día
Cada comando Git que toma un commit acepta la misma sintaxis de revisión: nombres de branches, SHAs, HEAD~3, @{upstream}, @{2.hours.ago}, tag^{commit}. Apréndela una vez vía git help gitrevisions y úsala en todas partes.
Errores comunes
Copiar y pegar comandos largos de blogs sin entenderlos; lee git help <cmd> para cualquier flag desconocido. Aliasar comandos destructivos a nombres cortos (r = reset --hard) y dispararlos por accidente; reserva los alias cortos para operaciones seguras. Ignorar el tab-completion de la shell y escribir nombres de branches a mano, con todos los typos que eso implica. Finalmente, nunca pegues salida de shell en un mensaje de commit esperando que se renderice como código; usa un bloque de código en tu editor o commitea un archivo en su lugar. Los pequeños hábitos se acumulan; invierte una tarde configurando tu shell y cosecha años de beneficio.