Introduzione
Git ricompensa la scioltezza da riga di comando. Poche piccole abitudini rendono il lavoro quotidiano enormemente più veloce e sicuro. Questa pagina raccoglie i consigli a maggior impatto per i nuovi utenti.
Sapere sempre dove sei
Aggiungi lo stato Git al prompt della shell. Sia Bash che Zsh includono script contrib:
# bash
source /usr/share/git/completion/git-prompt.sh
PS1='\w$(__git_ps1 " (%s)")\$ '
# zsh con oh-my-zsh: abilita il plugin git in ~/.zshrc
Ora il branch corrente e lo stato sporco sono visibili in ogni momento.
Tab completion
Git include git-completion.bash; la maggior parte dei gestori di pacchetti lo installa automaticamente. Tab-completa comandi, branch, remote e ref:
git che<TAB>
git switch fea<TAB>
Alias che ripagano
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 più corto
git status -sb
La forma -sb è a due colonne e include info di tracking del branch; perfetto per controlli rapidi.
Diff migliori
git diff --word-diff
git diff --color-words
git config --global diff.colorMoved zebra
colorMoved=zebra evidenzia blocchi di codice spostati in modo diverso da quelli aggiunti/rimossi, rendendo i refactor più facili da rivedere.
Ambiente utile
- Imposta
GIT_PAGER=less -FRXper un paging sensato. - Imposta
EDITORa qualcosa da cui sai uscire. - Usa un credential helper:
git config --global credential.helper cachesu Linux,osxkeychainsu macOS,managersu Windows.
Default sicuri
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") ricorda come hai risolto un conflitto e lo riapplica la volta successiva.
Leggere la storia dei commit velocemente
Due trucchi di visualizzazione ripagano quotidianamente:
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 di un giorno fa
Ogni comando Git che accetta un commit accetta la stessa sintassi di revision: nomi di branch, SHA, HEAD~3, @{upstream}, @{2.hours.ago}, tag^{commit}. Imparala una volta tramite git help gitrevisions e usala ovunque.
Errori comuni
Copia-incollare comandi lunghi da blog post senza capirli; leggi git help <cmd> per qualsiasi flag sconosciuto. Aliasare comandi distruttivi a nomi corti (r = reset --hard) e attivarli per sbaglio; riserva alias corti per operazioni sicure. Ignorare la tab completion della shell e digitare nomi di branch a mano, con tutti i typo che ne conseguono. Infine, non incollare mai output della shell in un messaggio di commit aspettandosi che venga renderizzato come codice; usa un blocco di codice nel tuo editor o committa un file. Le piccole abitudini si compongono; investi un pomeriggio configurando la tua shell e raccogli anni di benefici.