Einführung
Git belohnt Befehlszeilen-Geläufigkeit. Ein paar kleine Gewohnheiten machen die tägliche Arbeit dramatisch schneller und sicherer. Diese Seite sammelt die wirkungsvollsten Tipps für neue Nutzer.
Wissen Sie immer, wo Sie sind
Fügen Sie den Git-Status zu Ihrem Shell-Prompt hinzu. Bash und Zsh liefern beide contrib-Skripte mit:
# bash
source /usr/share/git/completion/git-prompt.sh
PS1='\w$(__git_ps1 " (%s)")\$ '
# zsh mit oh-my-zsh: Git-Plugin in ~/.zshrc aktivieren
Nun sind der aktuelle Branch und der Dirty-Zustand jederzeit sichtbar.
Tab-Vervollständigung
Git liefert git-completion.bash mit; die meisten Paketmanager installieren es automatisch. Vervollständigen Sie Befehle, Branches, Remotes und Refs per Tab:
git che<TAB>
git switch fea<TAB>
Aliase, die sich auszahlen
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"
Kürzerer Status
git status -sb
Die -sb-Form ist zweispaltig und enthält Branch-Tracking-Info; perfekt für schnelle Prüfungen.
Bessere Diffs
git diff --word-diff
git diff --color-words
git config --global diff.colorMoved zebra
colorMoved=zebra hebt verschobene Codeblöcke anders hervor als hinzugefügte/entfernte, was Refactorings einfacher zu reviewen macht.
Nützliche Umgebung
- Setzen Sie
GIT_PAGER=less -FRXfür sinnvolles Paging. - Setzen Sie
EDITORauf etwas, das Sie zu beenden wissen. - Verwenden Sie einen Credential-Helper:
git config --global credential.helper cacheunter Linux,osxkeychainunter macOS,managerunter Windows.
Sichere Voreinstellungen
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") merkt sich, wie Sie einen Konflikt gelöst haben, und spielt es beim nächsten Mal ab.
Commit-Historie schnell lesen
Zwei Anzeigetricks zahlen sich täglich aus:
git log --oneline --graph --all --decorate
git log -p --follow path/to/file
git show HEAD --stat
git diff @{u} # gegen Upstream
git diff @{1.day.ago} # gegen HEAD vor einem Tag
Jeder Git-Befehl, der einen Commit erwartet, akzeptiert dieselbe Revisions-Syntax: Branch-Namen, SHAs, HEAD~3, @{upstream}, @{2.hours.ago}, tag^{commit}. Lernen Sie sie einmal über git help gitrevisions und nutzen Sie sie überall.
Häufige Fehler
Lange Befehle aus Blogposts kopieren, ohne sie zu verstehen; lesen Sie für jedes unbekannte Flag git help <cmd>. Destruktive Befehle auf kurze Namen aliasen (r = reset --hard) und sie versehentlich auslösen; reservieren Sie kurze Aliase für sichere Operationen. Tab-Vervollständigung der Shell ignorieren und Branch-Namen von Hand tippen, mit allen damit verbundenen Tippfehlern. Schließlich: Fügen Sie niemals Shell-Ausgabe in eine Commit-Nachricht ein in der Erwartung, sie würde als Code dargestellt; verwenden Sie einen Codeblock in Ihrem Editor oder committen Sie stattdessen eine Datei. Kleine Gewohnheiten summieren sich; investieren Sie einen Nachmittag in die Konfiguration Ihrer Shell und ernten Sie jahrelang die Vorteile.