Programmierung und Softwareentwicklung gewinnen zunehmend an Bedeutung. Damit steigt auch die Nachfrage nach den entsprechenden Tools. Das hat zu einem hart umkämpften Markt geführt, in dem verschiedene Entwicklungs- und DevOps-Tools um den Titel des meistgenutzten Programms in ihrem Bereich konkurrieren. Git ist eines davon. Mit der zunehmenden Verbreitung von Remote-Arbeit, vor allem bei Tätigkeiten am Computer, hosten immer mehr Entwickler ihre Projekte auf externen Servern, darunter auch Git. Wenn du deinen eigenen Git-Server aufsetzen möchtest, bist du hier genau richtig.
In diesem Artikel erkläre ich, was Git genau ist, gehe auf Vor- und Nachteile ein und zeige dir anschließend, welche Voraussetzungen du benötigst und wie du deinen eigenen Git-Server hostest. Los geht's!
Was ist Git?
Git ist ein DevOps-Tool, das Entwicklern und Programmierern dabei hilft, ihre Projekte so effizient wie möglich zu verwalten. Die wichtigste Funktion von Git ist die Nachverfolgung von Änderungen im Quellcode über die Zeit. Git ist kostenlos und Open-Source und wird regelmäßig aktualisiert. Das macht Git zu einem der zugänglichsten und zuverlässigsten DevOps-Tools für Entwickler weltweit. Jeder Computer, auf dem Git installiert ist, fungiert als vollständiges Repository mit einer eigenen Historie aller Dateiänderungen. Nach fast 20 Jahren aktiver Entwicklung und mehr als 30 veröffentlichten Updates läuft Git derzeit auf Version 2.40.0, weitere Updates sind in Planung. Werfen wir nun einen Blick auf die wichtigsten Anwendungsfälle von Git, um besser zu verstehen, warum man überhaupt einen Git-Server betreiben möchte.
Git-Anwendungsfälle
Bevor wir direkt zum Aufsetzen eines eigenen lokalen Git-Servers übergehen, schauen wir uns kurz die wichtigsten Anwendungsfälle von Git an, damit klar wird, warum wir einen Git-Server betreiben wollen.
Repository klonen
Viele Entwickler legen ein Git-Repository auf einem Server an, um ihre Projekte und Dateien zu verwalten. Mit wenigen einfachen Befehlen lässt sich das aktuelle Linux-Kernel-Repository replizieren und als Grundlage für ein übersichtliches, strukturiertes Änderungsprotokoll der gewünschten Dateien nutzen. Der Vorgang ist unkompliziert und eignet sich sowohl für kleine als auch für große Projekte. Dieser Vorgang wird auch als "Verzweigung", denn im Wesentlichen erstellen Sie dabei einen neuen Branch aus Ihrem bereits vorhandenen Repository.
Git-Workflow
Ein eigener Git-Server eröffnet dir außerdem einen strukturierten Git-Workflow. Du kannst deinen lokalen Git-Server nutzen, um per Cloning zwei Branch-Sätze anzulegen: einer repräsentiert dein Projekt, etwa eine Website, der andere ist ein separater Production-Branch auf dem Git-Server. Dort werden alle Änderungen jedes einzelnen Entwicklers festgehalten und lassen sich vor dem Deployment testen. Dieser mehrschichtige Ansatz macht deine Entwicklung nicht nur effizienter, sondern erleichtert auch die Nachverfolgung von Änderungen erheblich.
Zusammenführen
Erinnerst du dich an das Branching und den Change Log? Merging ist genau das Gegenteil davon. Beim Merging – das von vielen als die anspruchsvollste Seite von Git gilt – werden die Änderungen aus einem Branch zurück in den Master-Branch zusammengeführt, von dem er ursprünglich abgezweigt wurde. Das Ziel ist ein Git-Server mit einer vollständigen Projekthistorie, die alle Änderungen aus verschiedenen Bereichen in einem übersichtlichen Repository bündelt. Während du im laufenden Projekt mit Branches arbeitest, um Konflikte zu vermeiden, kehrt Merging diesen Schritt am Projektende um und gibt dir beim Troubleshooting das vollständige Gesamtbild.
Eigenen Git-Server hosten: Vor- und Nachteile
Jedes Programm hat seine Stärken und Schwächen – wer es einsetzen möchte, sollte diese kennen. In diesem Abschnitt gehen wir auf die Vor- und Nachteile von Git ein. Dabei beziehen sich diese Punkte speziell auf den Self-Hosted-Betrieb von Git, der im Mittelpunkt dieses Leitfadens steht.
Self-hosted Git: Vorteile
Keine Drittanbieter
Wenn du Git selbst hostest, haben nur du und die Personen, denen du Zugang gewährst, Zugriff auf deine Dateien. Dritte bleiben außen vor. Du kannst dein Projekt unbesorgt vorantreiben und die Ressourcen, die du ursprünglich für Sicherheitsmaßnahmen eingeplant hattest, anderweitig einsetzen.
Sicherheit
Was die Sicherheit betrifft: Git ist durch Best Practices und den Einsatz von Drittanbieter-Tools so sicher wie kaum eine andere Lösung. Wer selbst hostet, gibt zwar ein gewisses Maß an vorkonfigurierter Absicherung auf, gewinnt dafür aber nahezu unbegrenzte Kontrolle darüber, wie sicher die eigene Infrastruktur ist.
Unbegrenzte Repositories
Erinnern Sie sich an Klonen und Branching? Bei Git gibt es keine Obergrenze für die Anzahl der Repositories. Das macht Git ideal für größere Projekte, bei denen jeder Entwicklungszweig ein eigenes Repository benötigt. Es eignet sich auch hervorragend für Projekte mit großen Dateien wie 3D-Assets und für die Arbeit mit Unity.
Selbst gehostetes Git: Nachteile
Hoher Verwaltungsaufwand
Git-Repositories können schnell außer Kontrolle geraten. Wenn du einen Git-Server auf deiner eigenen Plattform betreibst, wird die Verwaltung aller Branches und Metadaten schnell zur Herausforderung. Du brauchst entweder sehr viel Disziplin oder jemanden mit dem nötigen Know-how.
Steile Lernkurve
Git zu hosten ist eine Sache – es wirklich zu beherrschen und einen eigenen lokalen Git-Server zu betreiben, eine ganz andere. Git hat wahrscheinlich die steilste Lernkurve aller repository-basierten DevOps-Tools. Man muss entweder viel Zeit investieren, um es richtig zu lernen, oder die Arbeit auslagern.
Kein GUI und kein Windows-Support
Wollten Sie einen Git-Server auf Windows einrichten? Oder den Git-Server mit einer grafischen Oberfläche betreiben? Pech gehabt. Sie sind auf Betriebssysteme mit Linux-Kernel als Basis beschränkt, und eine GUI gibt es nicht. Möchten Sie einen Git-Server installieren und selbst hosten? Dann sollten Sie die Grundlagen des Programmierens beherrschen.
Veraltete Methode
Nach gängigen Maßstäben wirkt das Betreiben eines Git-Servers auf eigener Hardware veraltet – modernere Alternativen sind schlicht effizienter. Ein gutes Beispiel für eine solche Alternative wäre der Einsatz von GitLab. Bevor du dich also für einen eigenen Git-Server entscheidest, wirf einen Blick auf GitLab auch!
Voraussetzungen für die Installation eines Git-Servers
Schauen wir uns kurz die Voraussetzungen an, die für die Einrichtung eines eigenen Git-Servers nötig sind. Du brauchst nur zwei Dinge: einen Server und eine Git-Installation, plus grundlegende Kenntnisse der Kommandozeile, um den Server zu konfigurieren.
Git-Server
Als Server kannst du einen eigenen PC verwenden, dedizierte Server bei klassischen Anbietern mieten oder, wenn du mehr Kontrolle bevorzugst, einen Cloud VPS (Virtual Private Server) nutzen. Mit einem VPS verwaltest du den Server direkt und betreibst die Git-Instanz gleichzeitig. Beachte, dass auf deinem Server eine Linux-Distribution installiert sein muss, um einen Git-Server einzurichten. Cloudzy bietet eine große Auswahl an Linux VPS Diensten mit mehr als 10 bewährten Linux-Distributionen, darunter Ubuntu, Debian, CentOS, Kali und OpenSUSE. Ab nur 4,95 $/Monat bekommst du einen zuverlässigen Linux-Server in deiner Nähe, der eine gute Verbindungsqualität sicherstellt und sich ideal zum Selbsthosten eines Git-Servers eignet.
Hol dir einen Economy- oder Premium-Linux VPS zum günstigen Preis - ideal für Websites oder Remote-Desktop. VPS läuft auf Linux KVM für höhere Effizienz und setzt auf leistungsstarke Hardware mit NVMe SSD-Speicher für mehr Geschwindigkeit.
WeiterlesenGit-Instanz
Die Einrichtung eines Git-Servers ist unkompliziert und wird im Rahmen der Installation weitgehend automatisch erledigt. Git ist Open-Source und kostenlos, was es gegenüber vielen anderen repository-basierten Entwicklungsplattformen attraktiv macht. Jetzt, wo die Voraussetzungen klar sind, kommen wir direkt zur Schritt-für-Schritt-Anleitung zur Installation eines Git-Servers auf deinem Linux-Server.
Git-Server auf Linux installieren (Schritt-für-Schritt-Anleitung)
Schritt 1: Git herunterladen und installieren
Öffne das Terminal deiner gewählten Linux-Distribution und gib folgenden Befehl ein, um Git herunterzuladen und zu installieren:
Ubuntu/Debian-basierte Distributionen:
sudo apt install git
Arch-basierte Distributionen:
sudo pacman -S git
RHEL-basierte Distributionen:
sudo dnf install git
Dieser Befehl lädt Git herunter und installiert es auf deinem Linux-Server. Warte, bis der Vorgang abgeschlossen ist.
Schritt 2: Den Git-Server registrieren und konfigurieren
Hast du einen lokalen Server auf einem anderen Rechner, starte ihn. Bei einem VPS verbindest du dich per SSH oder RDP remote mit deinem Linux-Server. Jetzt richten wir den Git-Server für den Remote-Betrieb ein. Dazu legst du zunächst ein Git-Benutzerkonto mit folgendem Befehl an:
ssh username@address
sudo useradd git
Wechsle anschließend mit diesem Befehl zu dem neu erstellten Konto:
su git
Dieser Schritt dient vor allem der Sicherheit deines lokalen Git-Servers. Mit diesem Konto bist du der Administrator des Servers. Du kannst künftige Benutzer sicher in Gruppen mit festgelegten Rechten und Zugriffsstufen einteilen.
Schritt 3: SSH-Verzeichnisse erstellen und Git-Repository auf dem Server anlegen
Als nächstes erstellst du ein dediziertes SSH-Verzeichnis, in dem deine Public Keys gespeichert werden, und richtest ein Git-Repository auf dem Server mit zusätzlichen Sicherheitsebenen und definierten Zugriffsrechten ein. Gib dazu folgenden Befehl ein:
ssh git@address
mkdir .ssh
chmod 700 .ssh/
touch .ssh/authorized_keys
Nachdem du mit dieser Befehlszeile den Zugriff für andere eingeschränkt hast, gib die nächste Zeile ein, um sicherzustellen, dass deine SSH-Keys sicher in einem authorized_keys Ordner, auf den nur Sie zugreifen können (führen Sie diesen Befehl nur aus, wenn Sie KEINE id_rsa.pub Datei haben):
cd .ssh
ssh-keygen -t rsa
cat id_rsa.pub
Kopieren Sie abschließend den öffentlichen SSH-Schlüssel, den Sie erstellt haben, um eine neue SSH-Verbindung mit erhöhter Sicherheit zu Ihrem lokalen Git-Server einzurichten:
cd .ssh
vi authorized_keys
Schritt 4: Hauptverzeichnis erstellen
Auf Ihrem Linux-Server müssen Sie ein neues Verzeichnis anlegen, in dem alle Repositories gespeichert werden, die Git für Ihre künftigen Projekte verwendet. Dort verwalten Sie später alle Ihre Git-Repositories. Geben Sie folgenden Befehl ein:
mkdir directory_name
Schritt 5: Projekt hinzufügen!
Sie haben erfolgreich einen Git-Server eingerichtet. Die Installation und Konfiguration sind abgeschlossen. Jetzt müssen Sie nur noch weitere Projekte mit folgendem Befehl hinzufügen:
cd parent_directory
mkdir new_project.git
Geben Sie dann diesen Befehl ein, um den Remote-Origin auf Ihrem lokalen Rechner einzurichten:
git init --bare
git remote add origin name git@address:new_project.git
Führen Sie abschließend einen Git-Push durch, um zu prüfen, ob alles wie erwartet funktioniert:
touch testfile
git add testfile
git commit -m "test file"
git push name master
git clone git@address:new_project.git
Herzlichen Glückwunsch - Sie haben Git erfolgreich eingerichtet und ein Git-Repository auf dem Server erstellt.
Häufig gestellte Fragen
Kann ich Git ohne Server betreiben?
Nein. Unabhängig davon, welche Art von Server Sie nutzen, benötigen Sie Hardware, die als Server fungiert. Sie können GitHub als Cloud-Server für Ihre Repositories verwenden oder eines unserer VPS Angebote nutzen oder einen anderen Hosting-Dienst als Server einsetzen.
Gibt es eine Möglichkeit, einen Git-Server mit GUI zu installieren?
Ja. Git selbst unterstützt zwar keine grafische Oberfläche, aber es gibt eine eigenständige Version namens "Git GUI", die eine GUI mitbringt - für alle, die nicht ohne eine solche arbeiten möchten.
Ist Git kostenpflichtig?
Nein. Git ist ein freies Open-Source-Programm und wird es auch bleiben - so haben es die ursprünglichen Entwickler und Herausgeber vorgesehen. Sie können es als Grundlage für Ihre eigene Entwicklung nutzen, oder einfach kostenlos verwenden.
Warum sollten Sie Ihren eigenen Git-Server betreiben?
Wenn Sie ein kleineres Projekt mit überschaubaren Repositories betreiben, ist Self-Hosting deutlich privater und sicherer - das ist der Hauptgrund dafür. Bei größeren Projekten mit vielen Repositories nimmt die Effizienz des Self-Hostings jedoch ab.