-
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 du deine Arbeit freigeben oder Änderungen von anderswo beziehen willst, gibt es eine kleine Anzahl von Befehlen, die sich mit Remote-Repositorys beschäftigen.
git fetch
Der Befehl git fetch kontaktiert das entfernte Repository und lädt alle neuen Commits, Branches und Tags herunter, die in deinem lokalen Repository noch nicht vorhanden sind. Diese Informationen werden in der lokalen Git-Datenbank gespeichert, ohne deinen aktuellen Arbeitsstand zu verändern.
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 Befehl git pull kombiniert die Funktionen von git fetch und git merge: Git ruft die neuesten Änderungen aus dem angegebenen Remote-Repository ab und versucht anschließend, diese direkt in den aktuellen Branch 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 du ihn benutzt.
Wir erfahren in Rebasen, wenn du Rebase durchführst auch, wie du damit bei Schwierigkeiten während des Rebasings umgehen kannst.
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 du die Option --verify-signatures verwenden kannst, um beim Abrufen/Pullen von Commits überprüfen kannst, 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 kannst du einige Beispiele für die Verwendung von git push finden,wie du deine Arbeit an Branches mit mehreren Remotes teilen kannst.
Wir sehen in Tags teilen, wie du diesen Befehl benutzen kannst, um Tags, die du mit der --tags Option erstellt hast, 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 dir helfen, sehr spezifisch zu entscheiden, welche Arbeit du teilen möchtest.
git remote
Der Befehl git remote ist ein Management-Tool für die Verwaltung deiner Datensätze in Remote-Repositorys.
Er erlaubt dir, lange URLs als kurze Handles zu speichern, wie z.B. „origin“, damit du diese nicht ständig abtippen musst.
Du kannst 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.