Wenn es um Git-Hosting geht, haben Sie eine Reihe von Optionen zur Verfügung. GitHub, Gitlab und Bitbucket sind beliebte Lösungen, aber auch der Betrieb eines eigenen Git-Servers ist eine überlegenswerte Alternative.
Das Einrichten eines Git-Servers ermöglicht es Ihnen, private Repositories ohne die Einschränkungen der kostenlosen Pläne der Anbieter zu erstellen.
In dieser Anleitung erklären wir, wie Sie einen reinen Git-Server auf Linux einrichten. Dieses Setup ist gut, wenn Sie nur wenige Repositories haben und die Mitarbeiter technisch versiert sind. Andernfalls sollten Sie die Installation einer selbst gehosteten Git-Anwendung wie Gitea, Gogs oder Gitlab in Betracht ziehen.
Der Git-Server kann auf einem beliebigen entfernten Linux-Rechner oder sogar auf Ihrem lokalen System eingerichtet werden.
Einrichten des Git-Servers
Der erste Schritt ist die Installation von Git auf Ihrem Server.
Wenn Sie Debian oder Ubuntu verwenden, aktualisieren Sie den lokalen Paketindex und installieren Sie Git, indem Sie die folgenden Befehle als sudo-Benutzer ausführen:
sudo apt update && sudo apt install git
Um das Git-Paket auf CentOS-Servern zu installieren, geben Sie ein:
sudo yum install git
Nachfolgend erstellen Sie einen neuen Benutzer, der die Git-Repositories verwalten wird:
sudo useradd -r -m -U -d /home/git -s /bin/bash git
Das Home-Verzeichnis des Benutzers wird auf /home/git
gesetzt. Alle Repositories werden unter diesem Verzeichnis gespeichert. Für den Benutzer „git“ haben wir kein Passwort gesetzt, die Anmeldung wird nur über die ssh-Schlüssel möglich sein.
Wechseln Sie mit dem Befehl su
zum Benutzer „git“:
sudo su - git
Führen Sie die folgenden Befehle aus, um das SSH-Verzeichnis anzulegen und die richtigen Berechtigungen zu setzen:
mkdir -p ~/.ssh && chmod 0700 ~/.ssh
Erstellen Sie eine Datei mit dem Namen ~/.ssh/authorized_keys
, die die SSH-Schlüssel der autorisierten Benutzer enthalten wird:
touch ~/.ssh/authorized_keys && chmod 0600 ~/.ssh/authorized_keys
Das war’s. Die Einrichtung des Servers ist abgeschlossen. Jetzt können Sie Ihr erstes Git-Repository erstellen.
Führen Sie den folgenden Befehl aus, um ein neues leeres Repository zu erstellen:
git init --bare ~/projectname.git
Sie können das Verzeichnis beliebig benennen. Wichtig ist, dass das Repository unter dem Home-Verzeichnis des „git“-Benutzers angelegt wird.
Initialized empty Git repository in /home/git/projectname.git/
Lokales Git-Repository konfigurieren
Um die lokalen Git-Änderungen auf den Git-Server pushen zu können, müssen Sie den öffentlichen SSH-Schlüssel des lokalen Benutzers in die authorized_keys
-Datei des entfernten „git“-Benutzers einfügen.
Wenn Sie bereits ein SSH-Schlüsselpaar auf Ihrem lokalen System erstellt haben, können Sie den öffentlichen Schlüssel anzeigen, indem Sie Folgendes eingeben:
cat ~/.ssh/id_rsa.pub
Die Ausgabe sollte etwa wie folgt aussehen:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDd/mnMzHwjUzK8g3ldfsfRpJuC16mhWamaXRk8ySQrD/dzpbRLfDnZsLxCzRoq+ZzFHGwcQlJergtergdHGRrO8FE5jl3IWRRp+mP12qYw== [email protected]
Wenn Sie die Fehlermeldung No such file or directory
erhalten, bedeutet dies, dass Sie kein SSH-Schlüsselpaar auf Ihrem lokalen Rechner erzeugt haben.
Um ein neues SSH-Schlüsselpaar zu erzeugen, verwenden Sie den folgenden Befehl:
ssh-keygen -t rsa -b 4096 -C "[email protected]"
Kopieren Sie die Ausgabe des obigen cat
-Befehls und gehen Sie zurück zur Git-Serverkonsole.
Öffnen Sie auf dem Server Ihren Texteditor und fügen Sie den öffentlichen Schlüssel, den Sie von Ihrem lokalen Rechner kopiert haben, in die ~/.ssh/authorized_keys
-Datei ein:
sudo nano /home/git/.ssh/authorized_keys
Der gesamte Text des öffentlichen Schlüssels sollte in einer einzigen Zeile stehen.
Wir gehen davon aus, dass das Git-Paket bereits auf Ihrem lokalen Rechner installiert ist. Wenn nicht, installieren Sie es auf die gleiche Weise, wie in den vorherigen Abschnitten beschrieben.
Wenn Sie ein bestehendes, nicht versioniertes Projekt haben, navigieren Sie zum Projektverzeichnis. Wenn Sie von Grund auf neu beginnen, erstellen Sie das Projektverzeichnis und navigieren Sie dorthin:
cd /path/to/local/project
Initialisieren Sie ein Git-Repository:
git init .
Der letzte Schritt ist das Hinzufügen der Git-Remote zu Ihrem lokalen Repository:
git remote add origin git@git_server_ip:projectname.git
Vergessen Sie nicht, git_server_ip
durch den Hostnamen oder die IP-Adresse Ihres Git-Servers zu ersetzen.
Um zu überprüfen, ob alles richtig eingerichtet ist, erstellen Sie eine Testdatei:
touch test_file
Fügen Sie die Änderungen dem Staging-Bereich hinzu:
git add .
Übertragen Sie die Änderungen:
git commit -m "descriptive message"
Pushen Sie die Änderungen des lokalen Repositorys in ein Remote-Repository:
git push -u origin master
Wenn alles richtig eingerichtet ist, sollte die Ausgabe etwa so aussehen:
Um einen neuen Mitarbeiter hinzuzufügen, kopieren Sie einfach dessen öffentlichen SSH-Schlüssel in die ~/.ssh/authorized_keys
-Datei des „git“-Benutzers.
Sie können die gleichen Schritte verwenden, um neue Repositories zu erstellen. Es ist wichtig zu beachten, dass das entfernte Repository existieren muss, bevor Sie das git remote zu Ihrem lokalen Repository hinzufügen.
Abschluss #
In dieser Anleitung haben wir Ihnen gezeigt, wie Sie Ihren eigenen privaten Git-Server einrichten und Repositories erstellen.