Nachdem es in einem älteren Blogbeitrag um die Installation von Git unter Windows, Linux und macOS ging, widmet sich dieser Artikel den Grundlagen zu Git, wobei sich folgende Ausführungen primär an Einsteiger richten.
Klären wir zunächst aber die Frage, was Git eigentlich macht. Es handelt sich hierbei um eine Software zur Versionsverwaltung von Dateien. Anstatt von einer Datei ständig neue Versionen zu speichern, wird die Verwaltung unterschiedlicher Versionen im Hintergrund von Git übernommen. Dies hat den Vorteil, dass stets nur mit einer Datei gearbeitet wird. Damit dies funktioniert, legt Git im Projektverzeichnis ein (verstecktes) Unterverzeichnis mit dem Namen „.git“ an, in dem etwaige Änderungen festgehalten werden.
Grundeinstellungen
Sobald Git auf dem System ist, sollten der eigene Name und die E-Mail-Adresse konfiguriert werden:
$ git config --global user.name "Dein Name"
$ git config --global user.email "Deine E-Mail-Adresse"
Dies führt dazu, dass für Git eine Konfigurationsdatei mit der Bezeichnung .gitconfig
angelegt wird, die sich im eigenen Benutzerverzeichnis befindet. Sofern noch keine weiteren Einstellungen vorgenommen wurden, sieht ihr Inhalt jetzt wie folgt aus:
[user]
email = max@mustermann.de
name = Max Mustermann
Es existieren noch weitere optionale Konfigurationsmöglichkeiten. Für eine bessere Lesbarkeit im Terminal kann zum Beispiel die farbige Markierung von Text aktiviert werden:
$ git config --global color.diff auto
$ git config --global color.status auto
$ git config --global color.branch auto
Dies fügt weitere drei Einträge zur Datei .gitconfig
hinzu:
[color]
diff = auto
status = auto
branch = auto
Ein lokales Repository anlegen
Und damit kann Git auch schon genutzt werden. Unter Linux und macOS können Git-Anweisungen in der Shell verwendet werden. Unter Windows steht die PowerShell zur Verfügung. Darüber hinaus wird auch eine Git-Bash installiert.
Die schlichte Eingabe des Befehls git
zeigt die zur Verfügung stehenden Git-Befehle an. Wir wollen zunächst damit beginnen, ein lokales Repository zu erstellen, d.h. wir beginnen mit dem Befehl git init
. Um folgende Schritte nachvollziehen zu können, macht es Sinn, hierfür ein Beispielprojekt zu verwenden. Für dieses Git-Tutorial habe ich mich für eine schlichte Internetseite entschieden. Es existiert lediglich eine Datei mit der Bezeichnung „index.html“, die sich bei mir im Verzeichnis „Website“ befindet. Der Inhalt der Datei sieht wie folgt aus:
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="utf-8">
<title>Meine Internetseite</title>
<!--
<link rel="stylesheet" type="text/css" href"css/style.css">
-->
</head>
<body>
<header>
<h1>Dies ist die Startseite</h1>
<header>
</body>
</html>
In dem Verzeichnis „Website“, in dem sich die Datei „index.html“ befindet, wird nun ein neues Git-Repository erstellt:
$ git init
Dateien hinzufügen
In einem zweiten Schritt sind nun die Dateien zu diesem Repository hinzuzufügen:
$ git add .
Der Punkt hinter git add
bedeutet, dass alle Dateien, die sich im aktuellen Verzeichnis befinden, hinzugefügt werden sollen. Git kümmert sich sozusagen ab jetzt um diese Dateien. Werden später weitere Dateien hinzugefügt, muss Git dies ebenfalls mitgeteilt werden. So würde beispielsweise eine Datei mit dem Namen „styles.css“ folgendermaßen hinzugefügt werden:
$ git add styles.css
Jetzt kann unser erster commit erfolgen. Alle Dateien, die zuvor mit git add
hinzugefügt, oder anders gesagt, für einen commit ausgewählt wurden, können nun an Git übergeben werden. Das bedeutet, dass alle bisherigen Änderungen an den Dateien in der Git-Chronik festgehalten werden.
Die Eingabe der Anweisung
$ git commit
in einer Shell (bash, zsh, etc.) wird aber zunächst dazu führen, dass ein Editor (vim) geöffnet wird. Denn es ist stets erforderlich, eine kurze Beschreibung hinzuzufügen. Aus diesem Grund ist es sinnvoll, die Option -m
zu verwenden:
$ git commit -m "My first commit"
Dies erspart den Umweg über den vim-Editor.
Fall Ihr dennoch vim nutzen möchtet, hier die Vorgehensweise:
- Zunächst muss mit
i
in den ModusINSERT
gewechselt werden, denn erst dann ist es möglich, Text hinzuzufügen. - anschließend speichert Ihr den Text und beendet vim mit
esc
+:wq
.
Status und Zweige
Mit der Anweisung
$ git status
wird der aktuelle Status ausgegeben. Falls der commit erfolgreich war, sollte folgendes erscheinen:
On branch main
nothing to commit, working tree clean
Interessant ist die Zeile „On branch main“. Damit hat es folgendes auf sich: In Git werden Zweige (branches) angelegt. Der Hauptzweig, der standardmäßig bei der Erstellung eines neuen Git-Repositorys angelegt wird, heißt main (früher: master). Es ist möglich, weitere Zweige hinzuzufügen. Dies kann beispielsweise sinnvoll sein, wenn für ein Projekt unterschiedliche (neue) Features entwickelt werden sollen. Die Entwickler arbeiten dann lediglich mit den Versionen in den entsprechenden Zweigen. Ist die Entwicklung abgeschlossen könnte dann der Versionsstand eines (Neben-) Zweigs zum Hauptzweig (main) hinzugefügt werden. Falls sich aber zeigt, dass das Feature nicht umgesetzt werden kann, könnte die Arbeit daran eingestellt und dieser Zweig gelöscht werden. Bei alldem bleibt der Hauptzweig (main) stets unberührt.
Dateiänderungen
Früher oder später wird an einem Projekt gearbeitet werden. Und die dabei vorgenommenen Änderungen sollen selbstverständlich übermittelt werden (mit commit
). Um dies zu demonstrieren, verändere ich in der Datei „index.html“ die Überschrift h1
. Aus
<header>
<h1>Dies ist die Startseite</h1>
<header>
wird
<header>
<h1>Willkommen auf meiner Homepage!</h1>
<header>
Die Eingabe von
$ git status
führt jetzt zu folgender Information:
On branch main
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: index.html
no changes added to commit (use "git add" and/or "git commit -a")
Mit add
können die Änderungen hinzugefügt werden, wobei ich hier wieder mit dem Punkt angebe, dass alle Änderungen hinsichtlich der im Verzeichnis vorhandenen Dateien hinzugefügt werden sollen.
$ git add .
Alternativ könnte ich auch die Anweisung
$ git add index.html
verwenden. Anschließend kann ein commit
durchgeführt werden:
$ git commit -m "update h1 headline"
[main 4ddcebc] update h1 headline
1 file changed, 1 insertion(+), 1 deletion(-)
Wie der Rückmeldung entnommen werden kann, wurde eine Datei geändert, die Datei „index.html“.
Nun kennt Ihr die wesentlichen Grundlagen von Git, wobei in diesem Beispiel nur ein lokales Repository angelegt wurde. Im zweiten Teil werde ich auch Remote-Repositories ansprechen. Außerdem verlassen wir das Terminal und sehen uns an, wie die Git-Unterstützung in Code-Editoren aussieht.
Zuletzt aktualisiert am 19. September 2024