Lernen Sie die Grundlagen von Git, einschließlich der Installation, der wesentlichen Befehle wie init, clone, add, commit, push und pull, sowie der wichtigsten Git-Konzepte wie Repositories, Branches und Merges. Ideal für Anfänger, die mit Versionskontrolle und Code-Zusammenarbeit beginnen möchten.
Dies ist der allererste Blogbeitrag unserer neuen Praktikanten im Bereich Softwareentwicklung—Daniel, Simon und Till. Wir würden uns über euer Feedback freuen!
Git ist ein Open-Source-Versionskontrollsystem, das zum Speichern und Verwalten von Code, zur Pflege verschiedener Versionen des Programms, zum Teilen und zur Zusammenarbeit mit anderen sowie zur Wiederherstellung verlorenen oder beschädigten Codes verwendet wird. Während es eine Vielzahl von Funktionalitäten und Optionen bietet, sind nur wenige grundlegende Befehle erforderlich, um die häufigsten Arten von Operationen auszuführen und schnell produktiv zu werden.
Hinweis: Sie finden die offizielle Dokumentation unter git-scm.com/docs.
Bevor Sie Git verwenden können, müssen Sie es auf Ihrem Computer installieren. Die Installationsanweisungen für Ihr Betriebssystem finden Sie unter git-scm.com/downloads. Im Allgemeinen wäre ein guter Ausgangspunkt:
Bevor wir mit dem Erstellen unseres ersten Repositories beginnen, müssen wir unser Git-Benutzerprofil konfigurieren. Dieses wird später in Commits angezeigt, um zu verfolgen, welcher Benutzer eine bestimmte Änderung vorgenommen hat. In unserer Kommandozeile führen wir die folgenden Befehle aus (ersetzen Sie Ihre eigene E-Mail und Ihren Namen):
git config --global user.email "you@example.com" git config --global user.name "Your Name"Dann können wir überprüfen, ob die Konfiguration erfolgreich war, indem wir ausführen:
git config --list
Dies sollte den Benutzernamen und die E-Mail-Adresse anzeigen, die wir gerade festgelegt haben.
Bevor wir beginnen, lassen Sie uns einige Begriffe klären:
git init
Der init
-Befehl verwandelt das aktuelle Verzeichnis in ein neues Git-Repository. Lassen Sie uns zuerst zu einem Ordner navigieren, den wir in ein Repository umwandeln möchten, und den Befehl ausführen:
git init
Das gewählte Verzeichnis sollte nun einen einzelnen Ordner '.git' enthalten, der alles enthält, was Git benötigt, um Änderungen in diesem Verzeichnis zu verfolgen und Branches zu verwalten (der Ordner ist versteckt und wird möglicherweise in Ihrem Betriebssystem standardmäßig nicht angezeigt). Für den Moment ist dies nur ein lokales Repository, da es noch nicht mit einer Remote-Git-Speicherung wie GitHub, GitLab oder ähnlichem verbunden wurde.
git clone
Anstatt unser eigenes neues Repository zu initialisieren, können wir auch den Klonbefehl verwenden, um eine Kopie eines vorhandenen Repositories herunterzuladen. In einem neuen leeren Verzeichnis führen wir zum Beispiel aus:
git clone https://github.com/golang/go.git
Dies wird eine lokale Kopie des Golang-Repositories mit all seinen Branches erstellen. Die URL kann auf der Hauptseite des Repositories gefunden und per Klick auf die grüne "Code"-Schaltfläche kopiert werden. Das Klonen kann auch mittels SSH erfolgen, wenn Sie SSH-Schlüssel für Ihr GitHub-Konto eingerichtet haben. In diesem Fall sieht die URL anders aus.
git add
Lassen Sie uns zu unserem ersten Verzeichnis zurückkehren und eine neue Datei erstellen:
touch test.txt echo "Hello World!" > test.txt
Wenn wir nun den Befehl git status
ausführen, um den aktuellen Zustand unseres Repositories zu sehen, werden wir feststellen, dass die Datei nicht nachverfolgt wird. Dies bedeutet, dass Git sie noch nicht kennt und sie noch nicht im nächsten Commit enthalten sein wird:
Untracked files: (use "git add <file>..." to include in what will be committed) test.txt
Wir haben Git noch nicht mitgeteilt, welche Dateien es nachverfolgen soll. Um unsere neu erstellte Textdatei nachzuverfolgen, können wir ausführen:
git add test.txt
– oder wenn wir faul sind und einfach alles im Verzeichnis auf einmal hinzufügen möchten, könnten wir git add .
verwenden, um rekursiv alles Neue oder Geänderte im Verzeichnis und seinen Unterverzeichnissen hinzuzufügen.
Wenn wir jetzt git status
erneut ausführen, werden wir feststellen, dass die Datei jetzt für den Commit bereitgestellt wurde:
Changes to be committed: (use "git rm --cached <file>..." to unstage) new file: test.txt
Die Datei wurde bereitgestellt, d.h. sie wurde zur Aufnahme in eine neue Version/Revision unseres Repositories vorgemerkt, aber noch nicht committet.
git commit
Wir verwenden den Commit-Befehl, um alle unsere bereitgestellten Änderungen zu nehmen und einen neuen Commit zu erstellen, im Wesentlichen ein Schnappschuss des aktuellen Zustands unseres Projekts, auf dem wir aufbauen und zu dem wir möglicherweise später zurückkehren können. Lassen Sie uns dies jetzt in unserem Repository tun:
git commit
Wenn keine Optionen angegeben sind, wird Git den konfigurierten Standard-Editor öffnen, um eine Commit-Nachricht zu schreiben. Hier könnten wir einen Titel und eine Beschreibung unterhalb der kommentierten Zeilen wie folgt hinzufügen:
# Please enter the commit message for your changes. Lines starting # with '#' will be ignored, and an empty message aborts the commit. # # On branch master # # Initial commit # # Changes to be committed: # new file: test.txt # Added test.txt to the repo This is the description, explaining the commit in more detail. Anyone else reading this should be able to tell what the commit contains and why it was made.
Üblicherweise sollte die erste Zeile der Titel sein, ein einzelner Satz, der erklärt, worum es in dem Commit geht. Der folgende Text, getrennt durch eine Leerzeile, kann verwendet werden, um den Commit weiter zu beschreiben und zu erklären. Lassen Sie uns die Datei speichern und dann schließen. Git sollte dies erkennen und den Commit erstellen.
Hinweis: Wenn wir den Standardeditor ändern möchten, z.B. in VS Code, können wir dies tun, indem wir git config --global core.editor "code --wait"
ausführen. Andere Editoren können auf ähnliche Weise eingestellt werden, z.B. git config --global core.editor "nano"
für nano oder git config --global core.editor "vim"
für vim.
git remote
An diesem Punkt existiert unser Repository noch immer nur auf unserem lokalen Rechner. Aus Gründen der Sicherung und Zusammenarbeit möchten wir unser Repository möglicherweise auf einer Online-Plattform pflegen. Für dieses Beispiel verwenden wir GitHub, aber jede Alternative wie GitLab oder Bitbucket funktioniert ebenfalls, solange Sie einen funktionierenden Link und Zugang zu einem Online-Repository haben.
Nehmen wir an, wir haben ein neues Repository unter https://github.com/gentlent/test_project.git
eingerichtet. Wir können nun den Remote-Befehl ausführen, um unser lokales Repository mit dem Remote zu verbinden:
git remote add origin https://github.com/gentlent/test_project.git
Anschließend verwenden wir git remote -v
, um zu überprüfen. Es sollte `origin` gefolgt von unserer URL anzeigen.
git push
Wir sind nun bereit, unseren zuvor erstellten Commit in das neue Remote-Repository zu pushen und mit ihm zu synchronisieren. Lassen Sie uns ein git push
mit einigen Flags ausführen—origin
ist der Standardname für unser Remote, und main
ist unser eigener
Branch-Name:
git push -u origin main
Hinweis: Der Standard-Branch-Name war früher master
. Viele Plattformen verwenden heutzutage standardmäßig main
. Wenn der obige Befehl einen Fehler verursacht, überprüfen Sie Ihren Branch-Namen mit
git status
.
Die Verwendung der -u
-Optionsflagge bewirkt, dass Git den lokalen Branch mit dem Remote-Repository verknüpft. Jeder zukünftige
push
-Befehl wird automatisch von main
nach origin/main
gepusht, ohne dass wir die Ziele angeben müssen.
Wenn wir unser Remote-Repository auf GitHub überprüfen, können wir jetzt sehen, dass unsere Textdatei hochgeladen wurde.
git pull
Wenn wir Änderungen an unserem Remote-Repository vorgenommen haben, können wir sie mit dem
git pull
-Befehl in unser lokales Repository ziehen. Dies lädt alle Änderungen, die am Remote-Repository vorgenommen wurden, herunter und integriert sie in unsere
lokale Kopie.
Wenn wir zum Beispiel Änderungen an der test.txt
-Datei auf GitHub vorgenommen haben, können wir ausführen:
git pull
Dies wird die Änderungen herunterladen und in unsere lokale Kopie des Repositories integrieren. Wenn es Konflikte gibt, wird Git uns auffordern, diese zu lösen, bevor der Pull abgeschlossen wird. Wenn wir dies jetzt tun, erhalten wir die Nachricht Bereits aktuell, da Git festgestellt hat, dass keine neuen Änderungen vorgenommen wurden und das Zusammenführen übersprungen wurde.
Das obige deckt ein Minimum an Funktionalität ab, um mit dem Git-Ökosystem zu interagieren. Es gibt viele weitere
nützliche Befehle, insbesondere im Hinblick auf die Verwaltung verschiedener Branches, die hier nicht erklärt werden. Eine vollständigere Liste von Befehlen und deren Beschreibungen finden Sie in der offiziellen Dokumentation unter git-scm.com/docs oder indem Sie sie in Ihrer Kommandozeile ausprobieren. Wenn Sie jemals eine Frage zu einem Befehl haben, können Sie git help <command>
ausführen, um eine kurze Beschreibung dessen zu erhalten, was er bewirkt und wie man ihn verwendet.