Introduction
Git récompense la fluidité en ligne de commande. Quelques petites habitudes rendent le travail quotidien considérablement plus rapide et plus sûr. Cette page rassemble les conseils à plus fort impact pour les nouveaux utilisateurs.
Sachez toujours où vous êtes
Ajoutez le statut Git à votre invite shell. Bash et Zsh fournissent tous deux des scripts contrib :
# bash
source /usr/share/git/completion/git-prompt.sh
PS1='\w$(__git_ps1 " (%s)")\$ '
# zsh avec oh-my-zsh : activer le plugin git dans ~/.zshrc
Maintenant la branche courante et l'état modifié sont visibles en permanence.
Complétion par tabulation
Git fournit git-completion.bash ; la plupart des gestionnaires de paquets l'installent automatiquement. Complétez par tabulation les commandes, branches, remotes et refs :
git che<TAB>
git switch fea<TAB>
Alias rentables
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 plus court
git status -sb
La forme -sb est sur deux colonnes et inclut les infos de tracking de la branche ; parfait pour des vérifications rapides.
De meilleurs diffs
git diff --word-diff
git diff --color-words
git config --global diff.colorMoved zebra
colorMoved=zebra met en évidence les blocs de code déplacés différemment des ajoutés/supprimés, rendant les refactorings plus faciles à reviewer.
Environnement utile
- Définissez
GIT_PAGER=less -FRXpour un paging sensé. - Définissez
EDITORsur quelque chose que vous savez quitter. - Utilisez un assistant d'identifiants :
git config --global credential.helper cachesous Linux,osxkeychainsur macOS,managersous Windows.
Défauts sûrs
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 ») se souvient de la façon dont vous avez résolu un conflit et le rejoue la prochaine fois.
Lire l'historique des commits rapidement
Deux astuces de visualisation rentables au quotidien :
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 il y a un jour
Chaque commande Git qui prend un commit accepte la même syntaxe de révision : noms de branches, SHAs, HEAD~3, @{upstream}, @{2.hours.ago}, tag^{commit}. Apprenez-la une fois via git help gitrevisions et utilisez-la partout.
Erreurs fréquentes
Copier-coller de longues commandes depuis des articles de blog sans les comprendre ; lisez git help <cmd> pour tout flag inconnu. Aliaser des commandes destructives sur des noms courts (r = reset --hard) et les déclencher par accident ; réservez les alias courts aux opérations sûres. Ignorer la complétion par tabulation du shell et taper les noms de branches à la main, avec toutes les fautes de frappe que cela implique. Enfin, ne collez jamais la sortie du shell dans un message de commit en attendant qu'il s'affiche comme du code ; utilisez un bloc de code dans votre éditeur ou commitez plutôt un fichier. Les petites habitudes s'accumulent ; investissez un après-midi à configurer votre shell et récoltez des années de bénéfices.