-
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 Patches
- A3.9 E-Mail
- A3.10 Externe Systeme
- A3.11 Administration
- A3.12 Plumbing-Befehle
A3.8 Anhang C: Git-Befehle - Patches
Patching
Einige Befehle in Git konzentrieren sich auf das Konzept, Commits in Bezug auf die von ihnen eingeführten Änderungen zu betrachten, so als ob die Commit-Serie eine Reihe von Patches wäre. Diese Befehle helfen Ihnen, Ihre Branches auf diese Weise zu verwalten.
git cherry-pick
Der Befehl git cherry-pick wird verwendet, um die von einem einzelnen Git-Commit eingeführte Änderung zu übernehmen und sie als neuen Commit auf dem Branch wieder einzuführen, auf dem Sie sich gerade befinden. Dies kann nützlich sein, um nur einen oder zwei Commits einzeln von einem Branch zu übernehmen, anstatt den gesamten Branch zu mergen, was alle Änderungen übernimmt.
Cherry-Picking wird in Rebasing und Cherry-Picking-Workflows beschrieben und demonstriert.
git rebase
Der Befehl git rebase ist im Grunde ein automatisierter cherry-pick. Er bestimmt eine Reihe von Commits und wendet sie dann nacheinander in derselben Reihenfolge an einer anderen Stelle an.
Rebasing wird ausführlich in Rebasing behandelt, einschließlich der kollaborativen Probleme, die beim Rebasing von bereits öffentlichen Branches auftreten.
Wir verwenden es in der Praxis während eines Beispiels zum Aufteilen Ihrer Historie in zwei separate Repositories in Ersetzen, wobei auch das Flag --onto verwendet wird.
Wir durchlaufen die Begegnung mit einem Merge-Konflikt während des Rebasings in Rerere.
Wir verwenden es auch in einem interaktiven Skriptmodus mit der Option -i in Mehrere Commit-Nachrichten ändern.
git revert
Der Befehl git revert ist im Wesentlichen ein umgekehrtes git cherry-pick. Er erstellt einen neuen Commit, der genau das Gegenteil der von Ihnen anvisierten Änderung einführt, und macht diese im Wesentlichen rückgängig oder revertiert sie.
Wir verwenden dies in Den Commit rückgängig machen, um einen Merge-Commit rückgängig zu machen.