-
1. Erste Schritte
- 1.1 Über Versionskontrolle
- 1.2 Eine kurze Geschichte von Git
- 1.3 Was ist Git?
- 1.4 Die Kommandozeile
- 1.5 Git installieren
- 1.6 Erstmalige Git-Einrichtung
- 1.7 Hilfe bekommen
- 1.8 Zusammenfassung
-
2. Git Grundlagen
-
3. Git Branching
- 3.1 Branches im Überblick
- 3.2 Grundlegendes Branching und Merging
- 3.3 Branch-Management
- 3.4 Branching-Workflows
- 3.5 Remote-Branches
- 3.6 Rebasing
- 3.7 Zusammenfassung
-
4. Git auf dem Server
- 4.1 Die Protokolle
- 4.2 Git auf einem Server einrichten
- 4.3 Generieren Ihres SSH-Public-Keys
- 4.4 Einrichten des Servers
- 4.5 Git Daemon
- 4.6 Smart HTTP
- 4.7 GitWeb
- 4.8 GitLab
- 4.9 Drittanbieter-Hosting-Optionen
- 4.10 Zusammenfassung
-
5. Verteiltes Git
-
6. GitHub
-
7. Git-Werkzeuge
- 7.1 Revisionsauswahl
- 7.2 Interaktives Staging
- 7.3 Stashing und Bereinigen
- 7.4 Ihre Arbeit signieren
- 7.5 Suchen
- 7.6 Historie umschreiben
- 7.7 Reset entmystifiziert
- 7.8 Fortgeschrittenes Merging
- 7.9 Rerere
- 7.10 Debugging mit Git
- 7.11 Submodule
- 7.12 Bundling
- 7.13 Ersetzen
- 7.14 Credential-Speicher
- 7.15 Zusammenfassung
-
8. Git anpassen
-
9. Git und andere Systeme
- 9.1 Git als Client
- 9.2 Migration zu Git
- 9.3 Zusammenfassung
-
10. Git-Interna
- 10.1 Plumbing und Porcelain
- 10.2 Git-Objekte
- 10.3 Git-Referenzen
- 10.4 Packfiles
- 10.5 Die Refspec
- 10.6 Übertragungsprotokolle
- 10.7 Wartung und Datenwiederherstellung
- 10.8 Umgebungsvariablen
- 10.9 Zusammenfassung
-
Anhang A: Git in anderen Umgebungen
- A1.1 Grafische Oberflächen
- A1.2 Git in Visual Studio
- A1.3 Git in Visual Studio Code
- A1.4 Git in IntelliJ / PyCharm / WebStorm / PhpStorm / RubyMine
- A1.5 Git in Sublime Text
- A1.6 Git in Bash
- A1.7 Git in Zsh
- A1.8 Git in PowerShell
- A1.9 Zusammenfassung
-
Anhang B: Git in Ihre Anwendungen einbetten
- A2.1 Kommandozeilen-Git
- A2.2 Libgit2
- A2.3 JGit
- A2.4 go-git
- A2.5 Dulwich
-
Anhang C: Git-Befehle
- A3.1 Einrichtung und Konfiguration
- A3.2 Projekte abrufen und erstellen
- A3.3 Grundlegendes Snapshotting
- A3.4 Branching und Merging
- A3.5 Projekte teilen und aktualisieren
- A3.6 Inspektion und Vergleich
- A3.7 Debugging
- A3.8 Patching
- A3.9 E-Mail
- A3.10 Externe Systeme
- A3.11 Administration
- A3.12 Plumbing-Befehle
A1.7 Anhang A: Git in anderen Umgebungen - Git in Zsh
Git in Zsh
Zsh wird auch mit einer Tabulator-Vervollständigungsbibliothek für Git geliefert. Um diese zu verwenden, führen Sie einfach autoload -Uz compinit && compinit in Ihrer .zshrc aus. Zsh's Benutzeroberfläche ist etwas leistungsfähiger als die von Bash.
$ git che<tab>
check-attr -- display gitattributes information
check-ref-format -- ensure that a reference name is well formed
checkout -- checkout branch or paths to working tree
checkout-index -- copy files from index to working directory
cherry -- find commits not merged upstream
cherry-pick -- apply changes introduced by some existing commits
Mehrdeutige Tabulator-Vervollständigungen werden nicht nur aufgelistet; sie haben hilfreiche Beschreibungen, und Sie können die Liste grafisch durch wiederholtes Drücken der Tabulatortaste durchlaufen. Dies funktioniert mit Git-Befehlen, deren Argumenten und Namen von Dingen im Repository (wie Refs und Remotes) sowie mit Dateinamen und allen anderen Dingen, für die Zsh die Tabulator-Vervollständigung beherrscht.
Zsh wird mit einem Framework zur Abfrage von Versionskontrollsystemen geliefert, das vcs_info heißt. Um den Branch-Namen in der Eingabeaufforderung auf der rechten Seite anzuzeigen, fügen Sie diese Zeilen zu Ihrer ~/.zshrc-Datei hinzu:
autoload -Uz vcs_info
precmd_vcs_info() { vcs_info }
precmd_functions+=( precmd_vcs_info )
setopt prompt_subst
RPROMPT='${vcs_info_msg_0_}'
# PROMPT='${vcs_info_msg_0_}%# '
zstyle ':vcs_info:git:*' formats '%b'
Dies führt zu einer Anzeige des aktuellen Branches auf der rechten Seite des Terminalfensters, wann immer Ihre Shell sich in einem Git-Repository befindet. Die linke Seite wird natürlich auch unterstützt; kommentieren Sie einfach die Zuweisung zu PROMPT aus. Es sieht ungefähr so aus:
zsh-EingabeaufforderungWeitere Informationen zu vcs_info finden Sie in der Dokumentation auf der Manpage zshcontrib(1) oder online unter https://zsh.sourceforge.io/Doc/Release/User-Contributions.html#Version-Control-Information.
Anstelle von vcs_info bevorzugen Sie möglicherweise das Skript zur Anpassung der Eingabeaufforderung, das mit Git geliefert wird und git-prompt.sh heißt. Details finden Sie unter https://github.com/git/git/blob/master/contrib/completion/git-prompt.sh. git-prompt.sh ist sowohl mit Bash als auch mit Zsh kompatibel.
Zsh ist so leistungsfähig, dass es ganze Frameworks gibt, die darauf abzielen, es zu verbessern. Eines davon heißt "oh-my-zsh" und ist unter https://github.com/ohmyzsh/ohmyzsh zu finden. Das Plugin-System von oh-my-zsh verfügt über eine leistungsstarke Git-Tabulator-Vervollständigung und eine Vielzahl von Eingabeaufforderungs-"Themes", von denen viele Versionskontroll-Daten anzeigen. Ein Beispiel für ein oh-my-zsh-Theme ist nur ein Beispiel dafür, was mit diesem System möglich ist.