-
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
4.3 Git auf dem Server - Erstellung eines SSH-Public-Keys
Erstellung eines SSH-Public-Keys
Viele Git-Server authentifizieren sich über öffentliche SSH-Schlüssel.
Um einen öffentlichen Schlüssel bereitzustellen, muss jeder Benutzer in seinem System selbst einen generieren, falls er noch keinen hat.
Der Ablauf ist für alle Betriebssysteme gleich.
Zuerst solltest du überprüfen, ob du noch keinen Schlüssel hast.
Standardmäßig werden die SSH-Schlüssel eines Benutzers im Verzeichnis ~/.ssh
dieses Benutzers gespeichert.
Du kannst leicht nachsehen, ob du bereits über einen Schlüssel verfügst, indem du in dieses Verzeichnis gehst und den Inhalt auflistest:
$ cd ~/.ssh
$ ls
authorized_keys2 id_dsa known_hosts
config id_dsa.pub
Suche ein Datei-Paar mit dem Namen id_dsa
oder id_rsa
und eine entsprechende Datei mit der Erweiterung .pub
.
Die .pub
Datei ist dein öffentlicher Schlüssel, und die andere Datei ist der zugehörige private Schlüssel.
Wenn du diese Dateien nicht hast (oder nicht einmal ein .ssh
Verzeichnis vorhanden ist), kannst du sie erstellen, indem du ein Programm namens ssh-keygen
ausführst, das im SSH-Paket auf Linux/macOS-Systemen enthalten ist und mit Git für Windows installiert wird:
$ ssh-keygen -o
Generating public/private rsa key pair.
Enter file in which to save the key (/home/schacon/.ssh/id_rsa):
Created directory '/home/schacon/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/schacon/.ssh/id_rsa.
Your public key has been saved in /home/schacon/.ssh/id_rsa.pub.
The key fingerprint is:
d0:82:24:8e:d7:f1:bb:9b:33:53:96:93:49:da:9b:e3 schacon@mylaptop.local
Zuerst wird der Speicherort des Schlüssels (.ssh/id_rsa
) festgelegt, danach wird zweimal nach einer Passphrase gefragt, die du leer lassen kannst, wenn du beim Verwenden des Schlüssels nicht jedes mal ein Passwort eingeben möchtest.
Wenn du jedoch ein Passwort verwendest, fügst du die Option -o
hinzu; diese speichert den privaten Schlüssel in einem Format, das resistenter gegen Brute-Force-Passwortcracking ist als das Standardformat.
Du kannst auch das ssh-agent
Tool verwenden, um zu vermeiden, dass du das Passwort jedes Mal neu eingeben musst.
Jetzt muss jeder Benutzer seinen öffentlichen Schlüssel an dich oder an einen Administrator des Git-Servers senden (vorausgesetzt, du verwendest ein SSH-Server-Setup, für das öffentliche Schlüssel erforderlich sind).
Alles, was man tun muss, ist, den Inhalt der .pub
Datei zu kopieren und per E-Mail zu versenden.
Die öffentlichen Schlüssel sehen in etwa so aus:
$ cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAklOUpkDHrfHY17SbrmTIpNLTGK9Tjom/BWDSU
GPl+nafzlHDTYW7hdI4yZ5ew18JH4JW9jbhUFrviQzM7xlELEVf4h9lFX5QVkbPppSwg0cda3
Pbv7kOdJ/MTyBlWXFCR+HAo3FXRitBqxiX1nKhXpHAZsMciLq8V6RjsNAQwdsdMFvSlVK/7XA
t3FaoJoAsncM1Q9x5+3V0Ww68/eIFmb1zuUFljQJKprrX88XypNDvjYNby6vw/Pb0rwert/En
mZ+AW4OZPnTPI89ZPmVMLuayrD2cE86Z/il8b+gw3r3+1nKatmIkjn2so1d01QraTlMqVSsbx
NrRFi9wrf+M7Q== schacon@mylaptop.local
Ein ausführliches Tutorial zur Erstellung eines SSH-Schlüssels für unterschiedliche Betriebssysteme findest du in der GitHub-Anleitung für SSH-Schlüssel unter Generieren und Hinzufügen eines SSH-Schlüssels.