Git ist ein freies und weitverbreitetes Versionskontrollsystem, das von Linus Torvalds, dem Schöpfer des Betriebssystems Linux, entwickelt wurde. Es wird hauptsächlich in der Softwareentwicklung verwendet, um den Fortschritt von Projekten zu verfolgen und Änderungen an Code, Dokumenten und anderen Dateien nachvollziehbar zu machen. Git ist in der Lage, Änderungen an Dateien zeitlich zu ordnen und zu speichern, sodass man jederzeit zu einer früheren Version zurückkehren oder Änderungen rückgängig machen kann. Das macht Git zu einem unverzichtbaren Werkzeug für die Zusammenarbeit in Teams und die Verwaltung von Projekten.
Um Git zu nutzen, muss man es zunächst installieren. Auf Windows- und Mac-Systemen gibt es verschiedene Installationspakete, die man herunterladen und installieren kann. Auf Linux-Systemen ist Git in der Regel bereits vorinstalliert oder kann über das Systempaket-Manager installiert werden.
Wie kann man Git installieren
Git ist auf vielen Systemen bereits vorinstalliert oder kann über den Systempaket-Manager installiert werden. Um Git zu installieren, gibt es jedoch auch spezielle Installationspakete, die man herunterladen und installieren kann.
Hier sind die Schritte, um Git auf den gängigen Betriebssystemen zu installieren:
Windows
- Lade das Installationsprogramm von der Git-Website herunter: https://git-scm.com/download/win
- Führe das Installationsprogramm aus und folge den Anweisungen auf dem Bildschirm.
- Wähle die gewünschten Optionen aus, wie z.B. das Installationsverzeichnis und die zu installierenden Komponenten.
- Klicke auf “Installieren” und warte, bis der Installationsprozess abgeschlossen ist.
- Öffne eine Eingabeaufforderung und gib
git --version
ein, um zu überprüfen, ob Git erfolgreich installiert wurde.
Mac
- Lade das Installationsprogramm von der Git-Website herunter: https://git-scm.com/download/mac
- Führe das Installationsprogramm aus und folge den Anweisungen auf dem Bildschirm.
- Wähle die gewünschten Optionen aus, wie z.B. das Installationsverzeichnis und die zu installierenden Komponenten.
- Klicke auf “Installieren” und gib, wenn nötig, das Administratorkennwort ein.
- Öffne ein Terminal und gib
git --version
ein, um zu überprüfen, ob Git erfolgreich installiert wurde.
Auf Mac mit Homebrew
Homebrew ist ein Paket-Manager für MacOS, der es ermöglicht, verschiedene Software-Tools und -Bibliotheken über die Kommandozeile zu installieren. Um Git mit Homebrew zu installieren, gibt man in einem Terminal die folgenden Befehle ein:
- Gib
brew update
ein, um die Liste der verfügbaren Pakete zu aktualisieren.
- Gib
brew install git
ein, um Git zu installieren.
- Warte, bis die Installation abgeschlossen ist.
- Gib
git --version
ein, um zu überprüfen, ob Git erfolgreich installiert wurde.
Sobald Git installiert ist, kann man es über die Kommandozeile nutzen, indem man Git-Befehle eingibt. Um sich mit den verschiedenen Befehlen und Funktionen von Git vertraut zu machen, empfiehlt es sich, die Dokumentation von Git zu lesen oder einen Git-Kurs zu belegen.
Es ist auch möglich, Git über andere Paket-Manager wie z.B. apt
auf Linux-Systemen oder über spezielle Installationspakete auf Windows- und MacOS-Systemen zu installieren. Die genauen Schritte hängen vom verwendeten Paket-Manager und Betriebssystem ab.
Linux
Die Installation von Git auf Linux-Systemen hängt vom verwendeten Systempaket-Manager ab. Hier sind die Schritte zur Installation von Git mit dem Paket-Manager apt
, der auf vielen Linux-Distributionen verwendet wird:
- Öffne ein Terminal und gib
sudo apt update
ein, um die Liste der verfügbaren Pakete zu aktualisieren.
- Gib
sudo apt-get install git
ein, um Git zu installieren. - Gib das Administratorkennwort ein, wenn nötig.
- Warte, bis die Installation abgeschlossen ist.
- Gib
git --version
ein, um zu überprüfen, ob Git erfolgreich installiert wurde.
Es ist auch möglich, Git mit anderen Systempaket-Managern zu installieren, wie z.B. yum
oder dnf
auf CentOS oder Fedora, oder pacman
auf Arch Linux. Die genauen Schritte hängen vom verwendeten Systempaket-Manager und der Linux-Distribution ab.
Sobald Git installiert ist, kann man es über die Kommandozeile nutzen, indem man Git-Befehle eingibt. Um sich mit den verschiedenen Befehlen und Funktionen von Git vertraut zu machen, empfiehlt es sich, die Dokumentation von Git zu lesen oder einen Git-Kurs zu belegen.
Sobald Git installiert ist, kann man es über die Kommandozeile verwenden. Dazu öffnet man eine Kommandozeile (z.B. den “Terminal” auf Mac oder Linux, oder die “Eingabeaufforderung” auf Windows) und gibt Git-Befehle ein.
Einer der ersten Schritte bei der Nutzung von Git ist das Erstellen eines lokalen Repositories. Ein Repository (kurz “Repo”) ist ein Verzeichnis, in dem Git alle Änderungen an Dateien verfolgt und verwaltet. Um ein Repo zu erstellen, gibt man in der Kommandozeile git init
ein und wechselt in das Verzeichnis, in dem das Repo angelegt werden soll. Git legt dann im Verzeichnis eine neue Datei namens .git
an, in der alle Änderungen gespeichert werden.
Sobald man ein Repo erstellt hat, kann man damit beginnen, Änderungen an Dateien zu verfolgen. Dazu gibt man zunächst git add
ein, gefolgt vom Namen der Datei oder des Verzeichnisses, das hinzugefügt werden soll. Dies fügt die Änderungen dem sogenannten Staging-Bereich hinzu, in dem sie für den nächsten Commit bereitstehen. Anschließend gibt man git commit
ein, um die Änderungen endgültig zu speichern und ihnen eine Commit-Message (eine Beschreibung der Änderungen) zu geben.
Um Änderungen von anderen Nutzern in das eigene Repo zu holen, kann man git pull
verwenden. Dies lädt die Änderungen von einem Remote-Repository (z.B. auf GitHub) herunter und integriert sie in das lokale Repo. Um Änderungen, die man lokal vorgenommen hat, zu einem Remote-Repo hochzuladen, verwendet man git push
.
Es gibt noch viele weitere Befehle und Funktionen in Git, wie zum Beispiel git branch
zur Verwaltung von Branches, git merge
zum Integrieren von Änderungen von einem Branch in einen anderen und git tag
zum Markieren von wichtigen Commits. Um Git effektiv nutzen zu können, empfiehlt es sich, sich mit den verschiedenen Befehlen und Funktionen vertraut zu machen und sich in der Dokumentation von Git weiterzubilden.
Git-Befehle
Git wird über die Kommandozeile verwendet, wobei man verschiedene Befehle eingibt, um bestimmte Aktionen auszuführen. Hier sind einige der wichtigsten Git-Befehle:
git init
Der Befehl git init
wird verwendet, um ein neues Git-Repository (Repo) zu initialisieren. Ein Repo ist der Ort, an dem Git die Änderungen an den Dateien und die Versionshistorie verwaltet. Mit git init
wird im aktuellen Verzeichnis ein neues Repo erstellt. Es ist auch möglich, ein neues Repo in einem bestimmten Verzeichnis zu erstellen, indem man den Pfad zu diesem Verzeichnis als Argument an den Befehl anhängt.
git add
Der Befehl git add
dient dazu, Änderungen an Dateien dem nächsten Commit hinzuzufügen. Mit git add
können einzelne Dateien, mehrere Dateien oder sogar ganze Verzeichnisse ausgewählt werden, die hinzugefügt werden sollen. Zum Beispiel könnte man git add file1.txt
verwenden, um nur die Datei file1.txt
dem nächsten Commit hinzuzufügen, oder git add .
, um alle Dateien im aktuellen Verzeichnis dem Commit hinzuzufügen.
Bevor man eine Datei mit git add
hinzufügt, muss man sie zunächst mit git add
dem sogenannten Staging-Bereich hinzufügen. Der Staging-Bereich ist eine Art Zwischenspeicher, in dem alle Änderungen bereitstehen, um im nächsten Commit gespeichert zu werden. Mit git add
werden die Änderungen also erst dem Staging-Bereich hinzugefügt und erst im nächsten Commit endgültig gespeichert.
Es ist auch möglich, den Staging-Bereich mit dem Befehl git reset
zurückzusetzen, um Änderungen wieder aus dem Staging-Bereich zu entfernen. Dies kann zum Beispiel nützlich sein, wenn man Änderungen hinzugefügt hat, die man doch nicht im nächsten Commit speichern möchte.
Der Befehl git add
ist also ein wichtiger Bestandteil des Git-Workflows, um Änderungen an Dateien für den nächsten Commit vorzubereiten.
git commit
Der Befehl git commit
wird verwendet, um die Änderungen, die mit git add
hinzugefügt wurden, endgültig zu speichern und ihnen eine Nachricht (Commit-Message) zu geben, die beschreibt, was in diesem Commit enthalten ist. Ein Commit stellt einen Zeitpunkt in der Versionshistorie dar und kann jederzeit wiederhergestellt werden. Um einen Commit durchzuführen, gibt man git commit
ein und fügt anschließend die Commit-Message in Anführungszeichen ein, z.B. git commit -m "Meine Änderungen am Code"
.
git branch
Der Befehl git branch
dient zur Verwaltung von Zweigen (Branches) in einem Repo. Ein Branch ist eine unabhängige Linie von Commits, die parallel zur Hauptlinie (dem Master-Branch) verläuft und in der eigene Änderungen vorgenommen werden können, ohne die Hauptlinie zu beeinflussen. Mit git branch
kann man neue Branches erstellen, bestehende Branches löschen oder die Liste aller Branches im Repo anzeigen. Zum Beispiel könnte man git branch feature-x
verwenden, um einen neuen Branch mit dem Namen “feature-x” zu erstellen, oder git branch -d feature-x
, um den Branch “feature-x” zu löschen.
git merge
Der Befehl git merge
wird verwendet, um Änderungen von einem Branch in einen anderen zu integrieren. Dieser Prozess wird als Merging bezeichnet. Zum Beispiel könnte man Änderungen, die in einem Feature-Branch vorgenommen wurden, in den Master-Branch mergen, um sie in die Hauptlinie zu integrieren. Um ein Merge durchzuführen, wechselt man zunächst in den Branch, in den die Änderungen integriert werden sollen (z.B. den Master-Branch) und gibt dann git merge
ein, gefolgt von dem Namen des Branches, von dem die Änderungen kommen (z.B. git merge feature-x
).
git pull
Der Befehl git pull
wird verwendet, um Änderungen, die in einem Remote-Repository (z.B. auf GitHub) vorgenommen wurden, in das lokale Repository herunterzuladen und zu integrieren. Mit git pull
kann man also die neuesten Änderungen, die von anderen Nutzern gemacht wurden, in das eigene Repo holen und somit immer auf dem aktuellsten Stand bleiben.
Der Befehl git pull
führt im Hintergrund zwei Schritte aus: zunächst werden die Änderungen mit git fetch
heruntergeladen und im lokalen Repo gespeichert, aber noch nicht integriert. Danach werden die heruntergeladenen Änderungen mit git merge
in den aktuellen Branch integriert.
Um git pull
auszuführen, gibt man git pull
ein und fügt den Namen des Remote-Repos und den Namen des Branches als Argumente hinzu, von dem die Änderungen geholt werden sollen. Zum Beispiel git pull origin master
, um die Änderungen im Master-Branch des Remote-Repos “origin” zu holen.
Es ist auch möglich, git pull
mit bestimmten Optionen aufzurufen, um das Verhalten von git fetch
und git merge
zu beeinflussen. Zum Beispiel kann man mit git pull --rebase
anstelle von git merge
git rebase
ausführen, um die Historie des Branches umzustrukturieren.
Der Befehl git pull
ist ein nützliches Werkzeug, um die neuesten Änderungen von anderen Nutzern in das eigene Repo zu holen und um immer auf dem aktuellsten Stand zu bleiben. Es ist jedoch wichtig, immer daran zu denken, dass git pull
Änderungen integriert und somit die Historie des Repos verändert. Daher sollte man git pull
mit Vorsicht verwenden und sicherstellen, dass man die Auswirkungen auf den Branch und das Repo versteht, bevor man es ausführt.
git push
Der Befehl git push
wird verwendet, um Änderungen, die man lokal in einem Repo vorgenommen hat, zu einem Remote-Repository (z.B. auf GitHub) zu übertragen. Mit git push
kann man Commits, die man lokal gemacht hat, zu einem Remote-Repo hochladen und somit für andere Nutzer sichtbar machen. Um einen Push durchzuführen, gibt man git push
ein und fügt den Namen des Remote-Repos und den Namen des Branches als Argumente hinzu, z.B. git push origin master
.
Weitere Git-Features und -Funktionen
Dies sind nur einige der grundlegenden Git-Befehle, es gibt jedoch noch viele weitere Features und Funktionen, die Git bietet. Hier sind einige Beispiele:
- Git-Tags: Mit Git-Tags können wichtige Commits markiert und beschriftet werden, z.B. als Release-Versionen oder als Meilensteine im Projektfortschritt.
- Git-Stash: Mit Git-Stash kann man Änderungen temporär zwischenspeichern, um zu einem anderen Branch zu wechseln oder um einen Merge-Konflikt zu lösen, ohne die Änderungen zu verlieren.
- Git-Revert: Mit Git-Revert kann man Änderungen rückgängig machen und zu einer früheren Version eines Repos zurückkehren.
- Git-Rebase: Mit Git-Rebase kann man die Historie eines Branches umstrukturieren, indem man Änderungen von einem Branch auf einen anderen “rebaset”.
Q&A
git fetch
wird verwendet, um Änderungen, die in einem Remote-Repository vorgenommen wurden, in das lokale Repository herunterzuladen, ohne sie in den aktuellen Branch zu integrieren. git pull
führt hingegen git fetch
aus und integriert die heruntergeladenen Änderungen anschließend in den aktuellen Branch.git revert
verwenden. Dies fügt einen neuen Commit hinzu, der die Änderungen des letzten Commits rückgängig macht. Alternativ kann man auch git reset
verwenden, um den letzten Commit zu entfernen und die Änderungen zurück in den Staging-Bereich zu setzen.git branch -d
ein, gefolgt vom Namen des zu löschenden Branches. Beispiel: git branch -d feature-branch
. Wenn der Branch, der gelöscht werden soll, noch nicht in den aktuellen Branch integriert wurde, wird er gelöscht. Wenn der Branch bereits integriert wurde, muss man stattdessen git branch -D
verwenden, um ihn zu löschen.git add
verwenden, um die geänderte Datei dem Staging-Bereich hinzuzufügen, und anschließend git commit
, um den merge abzuschließen.git stash
wird verwendet, um Änderungen, die im aktuellen Branch vorgenommen wurden, temporär zu verstecken, um z.B. zu einem anderen Branch zu wechseln oder einen merge durchzuführen. Die versteckten Änderungen werden in einem sogenannten “stash” gespeichert, von dem sie später wiederhergestellt werden können. git stash pop
hingegen wird verwendet, um die Änderungen aus dem stash wiederherzustellen und gleichzeitig den stash zu entfernen.git checkout
verwenden. Dies setzt die Datei auf den Stand des letzten Commits zurück. Beispiel: git checkout path/to/file.txt
. Alternativ kann man auch git restore
verwenden, um die Änderungen in den Staging-Bereich zurückzusetzen.git clone
wird verwendet, um eine Kopie eines existierenden Git-Repositories herunterzuladen und auf dem lokalen System zu erstellen. Beim Clonen werden alle Commits, Branches und andere Objekte des Repositories mitkopiert, sodass man auf dem lokalen System die volle Historie und alle Funktionen des Repositories nutzen kann.
git init
wird hingegen verwendet, um ein neues, leeres Git-Repository zu erstellen. Mit git init
wird ein neuer Ordner mit einer Git-Konfiguration erstellt, aber es werden keine Commits oder Branches kopiert. Stattdessen muss man die Dateien, die man dem Repository hinzufügen möchte, manuell hinzufügen und committen. git init
wird hauptsächlich verwendet, um ein neues Repository auf einem lokalen System zu erstellen, bevor man es mit einem Remote-Repository verbindet und die Änderungen hochlädt.git remote add
. Dieser Befehl nimmt zwei Argumente entgegen: den Namen des Remote-Servers und die URL des Repositories. Beispiel: git remote add origin https://github.com/user/repo.git
. Der Name des Remote-Servers kann frei gewählt werden, oft wird “origin” verwendet. Nachdem der Remote-Server hinzugefügt wurde, kann man git push
verwenden, um Änderungen an den Remote-Server zu senden, und git pull
, um Änderungen vom Remote-Server herunterzuladen.git checkout
gefolgt vom Namen des Branches, auf den man wechseln möchte. Beispiel: git checkout feature-branch
. Wenn der angegebene Branch noch nicht existiert, kann man ihn mit dem -b
-Flag erstellen. Beispiel: git checkout -b new-branch
.Fazit
Git ist ein leistungsstarkes Versionskontrollsystem, das in der Softwareentwicklung unverzichtbar ist. Es bietet eine Vielzahl von Befehlen und Funktionen, die es ermöglichen, Änderungen an Dateien zu verfolgen und zu verwalten und somit den Fortschritt von Projekten zu dokumentieren. Git ist einfach zu erlernen und bietet zahlreiche Möglichkeiten, um die Zusammenarbeit in Teams zu verbessern und die Qualität von Code und Dokumenten zu sichern.
Photo by Gabriel Heinzer on Unsplash