-
1. Erste Schritte
-
2. Git Grundlagen
-
3. Git Branching
- 3.1 Branches auf einen Blick
- 3.2 Einfaches 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 Erstellung eines SSH-Public-Keys
- 4.4 Einrichten des Servers
- 4.5 Git-Daemon
- 4.6 Smart HTTP
- 4.7 GitWeb
- 4.8 GitLab
- 4.9 Von Drittanbietern gehostete Optionen
- 4.10 Zusammenfassung
-
5. Verteiltes Git
-
6. GitHub
-
7. Git Tools
- 7.1 Revisions-Auswahl
- 7.2 Interaktives Stagen
- 7.3 Stashen und Bereinigen
- 7.4 Deine Arbeit signieren
- 7.5 Suchen
- 7.6 Den Verlauf umschreiben
- 7.7 Reset entzaubert
- 7.8 Fortgeschrittenes Merging
- 7.9 Rerere
- 7.10 Debuggen mit Git
- 7.11 Submodule
- 7.12 Bundling
- 7.13 Replace (Ersetzen)
- 7.14 Anmeldeinformationen speichern
- 7.15 Zusammenfassung
-
8. Git einrichten
- 8.1 Git Konfiguration
- 8.2 Git-Attribute
- 8.3 Git Hooks
- 8.4 Beispiel für Git-forcierte Regeln
- 8.5 Zusammenfassung
-
9. Git und andere VCS-Systeme
- 9.1 Git als Client
- 9.2 Migration zu Git
- 9.3 Zusammenfassung
-
10. Git Interna
-
A1. Anhang A: Git in anderen Umgebungen
- A1.1 Grafische Schnittstellen
- 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
-
A2. Anhang B: Git in deine Anwendungen einbetten
- A2.1 Die Git-Kommandozeile
- A2.2 Libgit2
- A2.3 JGit
- A2.4 go-git
- A2.5 Dulwich
-
A3. Anhang C: Git Kommandos
- A3.1 Setup und Konfiguration
- A3.2 Projekte importieren und erstellen
- A3.3 Einfache Snapshot-Funktionen
- A3.4 Branching und Merging
- A3.5 Projekte gemeinsam nutzen und aktualisieren
- A3.6 Kontrollieren und Vergleichen
- A3.7 Debugging
- A3.8 Patchen bzw. Fehlerkorrektur
- A3.9 E-mails
- A3.10 Externe Systeme
- A3.11 Administration
- A3.12 Basisbefehle
A3.5 Anhang C: Git Kommandos - Projekte gemeinsam nutzen und aktualisieren
Projekte gemeinsam nutzen und aktualisieren
Es gibt nicht besonders viele Befehle in Git, die auf das Netzwerk zugreifen, fast alle Befehle arbeiten mit der lokalen Datenbank. Wenn Sie Ihre Arbeit freigeben oder Änderungen von anderswo beziehen wollen, gibt es eine kleine Anzahl von Befehlen, die sich mit Remote-Repositorys beschäftigen.
git fetch
Der Befehl git fetch
kommuniziert mit einem entfernten Repository und holt alle Informationen, die sich in diesem Repository befinden, aber nicht in Ihrem aktuellen Repository und speichert sie in Ihrer lokalen Datenbank.
Wir sehen uns diesen Befehl zunächst in Fetchen und Pullen deiner Remotes an und betrachten anschließend weitere Beispiele für seine Verwendung in Remote-Branches.
Wir benutzen ihn auch bei einigen Beispielen in An einem Projekt mitwirken.
Wir verwenden ihn in Pull Request Refs (Referenzen), um eine einzelne konkrete Referenz zu beziehen, die außerhalb des standardmäßigen Bereichs liegt und wir sehen, in Bundling, wie man sie aus einem Packet herausholen kann.
Wir richten in Die Referenzspezifikation (engl. Refspec) eigene Referenzspezifikationen ein, damit git fetch
etwas anderes als die Standardeinstellung macht.
git pull
Der git pull
Befehl ist im Grunde eine Kombination aus den git fetch
und git merge
Befehlen, wobei Git von dem angegebenen Remote holt und dann sofort versucht, es in den Branch, auf dem Sie gerade sind, zu integrieren.
Wir führen ihn in Fetchen und Pullen deiner Remotes ein und zeigen in Inspizieren eines Remotes auf, was alles gemerged wird, wenn Sie ihn benutzen.
Wir erfahren in Rebasen, wenn du Rebase durchführst auch, wie Sie damit bei Schwierigkeiten während des Rebasings umgehen können.
Wir zeigen in Remote Branches auschecken, wie man ihn mit einer URL verwendet, um Änderungen einmalig einzupflegen.
Schließlich erwähnen wir in Commits signieren noch kurz, wie Sie die Option --verify-signatures
verwenden können, um beim Abrufen/Pullen von Commits überprüfen können, ob diese mit GPG signiert wurden.
git push
Der git push
Befehl wird benutzt, um mit einem anderen Repository zu kommunizieren, zu ermitteln, was die lokale Datenbank enthält, die die entfernte nicht hat und dann die Differenz in das entfernte Repository zu pushen.
Es erfordert Schreibzugriff auf das entfernte Repository und wird daher in der Regel auf irgend eine Weise authentifiziert.
Wir sehen uns zuerst den git push
Befehl in Zu deinen Remotes Pushen an.
Hier beschreiben wir die grundlegenden Aspekte des Pushens einer Branch zu einem Remote-Repository.
In Pushing/Hochladen gehen wir ein wenig detaillierter auf das Pushen bestimmter Branches ein und in Tracking-Branches sehen wir, wie man Tracking-Branches einrichtet, um dorthin automatisch zu pushen.
In Remote-Branches entfernen benutzen wir die Option --delete
, um einen Branch auf dem Server mit git push
zu löschen.
Im Kapitel 5 An einem Projekt mitwirken können Sie einige Beispiele für die Verwendung von git push
finden,wie Sie Ihre Arbeit an Branches mit mehreren Remotes teilen können.
Wir sehen in Tags teilen, wie Sie diesen Befehl benutzen können, um Tags, die Sie mit der --tags
Option erstellt haben, gemeinsam zu nutzen.
In Änderungen am Submodul veröffentlichen verwenden wir die Option --recurse-submodules
, um zu überprüfen, ob alle unsere Submodule funktionieren, bevor wir zum Hauptprojekt pushen, was bei der Verwendung von Submodulen sehr hilfreich sein kann.
In Andere Client-Hooks sprechen wir kurz über den pre-push
Hook, ein Skript, das wir so einrichten können, dass es vor dem Abschluss eines Pushs ausgeführt wird, um zu prüfen, ob es zulässig sein sollte, zu pushen.
Schließlich betrachten wir in Pushende Refspecs das Pushen mit einer vollständigen Referenzspezifikation (engl. refspec) anstelle der allgemeinen Abkürzungen, die normalerweise verwendet werden. Das kann Ihnen helfen, sehr spezifisch zu entscheiden, welche Arbeit Sie teilen möchten.
git remote
Der Befehl git remote
ist ein Management-Tool für die Verwaltung Ihrer Datensätze in Remote-Repositorys.
Er erlaubt Ihnen, lange URLs als kurze Handles zu speichern, wie z.B. „origin“, damit Sie diese nicht ständig abtippen müssen.
Sie können auch mehrere solcher Adressen einrichten und der Befehl git remote
wird verwendet, um sie hinzuzufügen, zu ändern oder zu löschen.
Dieser Befehl wird ausführlich in Mit Remotes arbeiten behandelt, einschließlich des Auflistens, Hinzufügens, Entfernens und Umbenennens.
Er wird auch in fast jedem der nachfolgenden Kapitel des Buchs verwendet, aber immer im Standardformat git remote add <name> <url>
.
git archive
Der Befehl git archive
wird verwendet, um eine Archivdatei von einem bestimmten Snapshot des Projekts zu erstellen.
Wir benutzen git archive
in Ein Release vorbereiten, um einen Tarball eines Projektes für die gemeinsame Nutzung zu erstellen.
git submodule
Der Befehl git submodule
dient dazu, externe Repositorys innerhalb eines normalen Repositorys zu verwalten.
Das kann für Bibliotheken oder andere Arten von gemeinsam genutzten Ressourcen nötig sein.
Das submodule
Kommando hat mehrere Unterbefehle (add
, update
, sync
, usw.) für die Verwaltung dieser Ressourcen.
Dieser Befehl wird nur in Submodule erwähnt und dort ausführlich beschrieben.