-
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
4.7 Git auf dem Server - GitWeb
GitWeb
Nachdem Sie nun grundlegenden Lese-/Schreibzugriff und schreibgeschützten Zugriff auf Ihr Projekt haben, möchten Sie möglicherweise eine einfache webbasierte Visualisierung einrichten. Git wird mit einem CGI-Skript namens GitWeb geliefert, das manchmal dafür verwendet wird.
Wenn Sie überprüfen möchten, wie GitWeb für Ihr Projekt aussehen würde, verfügt Git über einen Befehl, um eine temporäre Instanz zu starten, wenn Sie einen leichtgewichtigen Webserver auf Ihrem System haben, wie z. B. lighttpd oder webrick. Auf Linux-Maschinen ist lighttpd oft installiert, sodass Sie es möglicherweise zum Laufen bringen können, indem Sie git instaweb in Ihrem Projektverzeichnis eingeben. Wenn Sie macOS ausführen, ist Leopard mit Ruby vorinstalliert, daher ist webrick möglicherweise Ihre beste Wahl. Um instaweb mit einem Nicht-Lighttpd-Handler zu starten, können Sie es mit der Option --httpd ausführen.
$ git instaweb --httpd=webrick
[2009-02-21 10:02:21] INFO WEBrick 1.3.1
[2009-02-21 10:02:21] INFO ruby 1.8.6 (2008-03-03) [universal-darwin9.0]
Dies startet einen HTTPD-Server auf Port 1234 und startet dann automatisch einen Webbrowser, der sich auf dieser Seite öffnet. Es ist für Sie ziemlich einfach. Wenn Sie fertig sind und den Server herunterfahren möchten, können Sie denselben Befehl mit der Option --stop ausführen
$ git instaweb --httpd=webrick --stop
Wenn Sie die Weboberfläche dauerhaft auf einem Server für Ihr Team oder für ein Open-Source-Projekt, das Sie hosten, ausführen möchten, müssen Sie das CGI-Skript so einrichten, dass es von Ihrem normalen Webserver bereitgestellt wird. Einige Linux-Distributionen haben ein gitweb-Paket, das Sie möglicherweise über apt oder dnf installieren können, daher sollten Sie dies zuerst versuchen. Wir werden sehr schnell durch die manuelle Installation von GitWeb gehen. Zuerst müssen Sie den Git-Quellcode abrufen, mit dem GitWeb geliefert wird, und das benutzerdefinierte CGI-Skript generieren
$ git clone https://git.kernel.org/pub/scm/git/git.git
$ cd git/
$ make GITWEB_PROJECTROOT="/srv/git" prefix=/usr gitweb
SUBDIR gitweb
SUBDIR ../
make[2]: `GIT-VERSION-FILE' is up to date.
GEN gitweb.cgi
GEN static/gitweb.js
$ sudo cp -Rf gitweb /var/www/
Beachten Sie, dass Sie dem Befehl mit der Variable GITWEB_PROJECTROOT mitteilen müssen, wo Ihre Git-Repositorys zu finden sind. Nun müssen Sie Apache dazu bringen, CGI für dieses Skript zu verwenden, wofür Sie einen VirtualHost hinzufügen können
<VirtualHost *:80>
ServerName gitserver
DocumentRoot /var/www/gitweb
<Directory /var/www/gitweb>
Options +ExecCGI +FollowSymLinks +SymLinksIfOwnerMatch
AllowOverride All
order allow,deny
Allow from all
AddHandler cgi-script cgi
DirectoryIndex gitweb.cgi
</Directory>
</VirtualHost>
Auch GitWeb kann mit jedem CGI- oder Perl-fähigen Webserver bereitgestellt werden; wenn Sie lieber etwas anderes verwenden möchten, sollte die Einrichtung nicht schwierig sein. An diesem Punkt sollten Sie in der Lage sein, http://gitserver/ zu besuchen, um Ihre Repositorys online anzuzeigen.