-
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
2.1 Git Grundlagen - Ein Git-Repository erhalten
Wenn Sie nur ein Kapitel lesen können, um mit Git loszulegen, dann ist es dieses. Dieses Kapitel behandelt jeden grundlegenden Befehl, den Sie benötigen, um die überwiegende Mehrheit der Dinge zu tun, mit denen Sie sich letztendlich mit Git beschäftigen werden. Am Ende des Kapitels sollten Sie in der Lage sein, ein Repository zu konfigurieren und zu initialisieren, mit der Verfolgung von Dateien zu beginnen und aufzuhören und Änderungen zu speichern und zu committen. Wir zeigen Ihnen auch, wie Sie Git einrichten, um bestimmte Dateien und Dateimuster zu ignorieren, wie Sie Fehler schnell und einfach rückgängig machen, wie Sie den Verlauf Ihres Projekts durchsuchen und Änderungen zwischen Commits anzeigen und wie Sie von entfernten Repositories pushen und pullen.
Ein Git-Repository erhalten
Typischerweise erhalten Sie ein Git-Repository auf eine von zwei Arten
-
Sie können ein lokales Verzeichnis, das derzeit nicht unter Versionskontrolle steht, nehmen und es in ein Git-Repository umwandeln, oder
-
Sie können ein bestehendes Git-Repository von anderswo klonen.
In beiden Fällen erhalten Sie ein Git-Repository auf Ihrem lokalen Rechner, das für die Arbeit bereit ist.
Initialisieren eines Repositories in einem bestehenden Verzeichnis
Wenn Sie ein Projektverzeichnis haben, das derzeit nicht unter Versionskontrolle steht und Sie es mit Git kontrollieren möchten, müssen Sie zuerst in das Verzeichnis dieses Projekts wechseln. Wenn Sie das noch nie getan haben, sieht es je nach System, auf dem Sie arbeiten, etwas anders aus
für Linux
$ cd /home/user/my_project
für macOS
$ cd /Users/user/my_project
für Windows
$ cd C:/Users/user/my_project
und geben Sie ein
$ git init
Dies erstellt ein neues Unterverzeichnis namens .git, das alle Ihre notwendigen Repository-Dateien enthält - ein Git-Repository-Skelett. Zu diesem Zeitpunkt wird noch nichts in Ihrem Projekt verfolgt. Weitere Informationen darüber, welche Dateien sich genau im .git-Verzeichnis befinden, das Sie gerade erstellt haben, finden Sie in Git Internals.
Wenn Sie bestehende Dateien versionieren möchten (im Gegensatz zu einem leeren Verzeichnis), sollten Sie wahrscheinlich mit der Verfolgung dieser Dateien beginnen und einen initialen Commit durchführen. Sie können dies mit einigen git add-Befehlen erreichen, die die zu verfolgenden Dateien angeben, gefolgt von einem git commit
$ git add *.c
$ git add LICENSE
$ git commit -m 'Initial project version'
Wir werden in Kürze besprechen, was diese Befehle tun. Zu diesem Zeitpunkt haben Sie ein Git-Repository mit verfolgten Dateien und einem initialen Commit.
Klonen eines bestehenden Repositories
Wenn Sie eine Kopie eines bestehenden Git-Repositories erhalten möchten - zum Beispiel ein Projekt, zu dem Sie beitragen möchten - ist der Befehl, den Sie benötigen, git clone. Wenn Sie mit anderen VCS wie Subversion vertraut sind, werden Sie feststellen, dass der Befehl "clone" und nicht "checkout" heißt. Dies ist ein wichtiger Unterschied - anstatt nur eine Arbeitskopie zu erhalten, erhält Git eine vollständige Kopie von fast allen Daten, die der Server hat. Jede Version jeder Datei für den Verlauf des Projekts wird standardmäßig heruntergeladen, wenn Sie git clone ausführen. Tatsächlich, wenn Ihre Serverfestplatte beschädigt wird, können Sie oft fast jeden Klon auf jedem Client verwenden, um den Server in den Zustand zurückzusetzen, in dem er sich befand, als er geklont wurde (möglicherweise verlieren Sie einige serverseitige Hooks und Ähnliches, aber alle versionierten Daten wären vorhanden - siehe Getting Git on a Server für weitere Details).
Sie klonen ein Repository mit git clone <url>. Wenn Sie zum Beispiel die Git-Linkable-Bibliothek namens libgit2 klonen möchten, können Sie dies wie folgt tun
$ git clone https://github.com/libgit2/libgit2
Dies erstellt ein Verzeichnis namens libgit2, initialisiert darin ein .git-Verzeichnis, lädt alle Daten für dieses Repository herunter und checkt eine Arbeitskopie der neuesten Version aus. Wenn Sie in das neu erstellte Verzeichnis libgit2 wechseln, sehen Sie die Projektdateien darin, bereit zur Bearbeitung oder Verwendung.
Wenn Sie das Repository in ein Verzeichnis mit einem anderen Namen als libgit2 klonen möchten, können Sie den neuen Verzeichnisnamen als zusätzliches Argument angeben
$ git clone https://github.com/libgit2/libgit2 mylibgit
Dieser Befehl tut dasselbe wie der vorherige, aber das Zielverzeichnis heißt mylibgit.
Git hat eine Reihe von verschiedenen Übertragungsprotokollen, die Sie verwenden können. Das vorherige Beispiel verwendet das https://-Protokoll, aber Sie können auch git:// oder user@server:path/to/repo.git sehen, das das SSH-Übertragungsprotokoll verwendet. Getting Git on a Server stellt Ihnen alle verfügbaren Optionen vor, die der Server einrichten kann, um auf Ihr Git-Repository zuzugreifen, sowie die Vor- und Nachteile jeder einzelnen.