Git ist wohl eines der wichtigsten Tools für Software-Entwickler. Es handelt sich dabei um eine sogenannte Versionsverwaltung. Mithilfe dieser Software kannst du Dateien in verschiedenen Versionen speichern und zu jedem Zeitpunkt zu einer "älteren" Version zurückkehren.

Obwohl es dafür bereits verschiedene Anwendungen gibt, die eine grafische Benutzerobfläche zur Verfügung stellen oder aber Plugins und Erweiterungen für diverse Entwicklungsumgebungen bzw. Editoren (wie zum Beispiel: Sublime Text), verwendet man häufig dennoch die ursprüngliche Kommandozeilen-Variante.

Git ist recht simpel aufgebaut und da es nur eine Handvoll Befehle gibt, die man regelmäßig braucht, ist es auch sehr schnell zu erlernen.

Wie funktioniert Git?

Zunächst einmal haben wir einen sogenannten master-Branch. Dieser beinhaltet immer die "aktuellste Hauptversion". Mit jeder Änderung lässt sich eine neue Version, ein sogenannter Commit erzeugen. Auf welchen man anschließend referenzieren kann. Oder anders formuliert, beim Erzeugen eines Commits entsteht eine neue Version, eine Art Snapshot.

Erzeugt werden kann nun eine baumartige Struktur mittels sogenannten Branches und Commits. Ein Branch ist quasi eine Kopie von einer bestimmten Version (zu einem bestimmten Zeitpunkt) bei der du parallel arbeiten kannst. Die folgende Grafik veranschaulicht, wie du Git beispielsweise benutzen kannst um für verschiedene Features jeweils eigene Branches zu erzeugen (sogenannte Feature-Branches), an denen parallel gearbeitet werden kann.
Das hat den Vorteil, dass noch nicht abgeschlossene Features vorerst in einem "Entwicklungsstadium" bleiben können, bevor sie anschließend wieder (zurück) in den master-Branch übernommen (d.h. merged) werden.

Git Versionsverwaltung - Übersicht Feature Branches

Die grundlegende Idee ist folgende. Du legst ein neues Git-Projekt an, was im wesentlichen einfach ein Ordner ist, indem sich deine jeweiligen Dateien befinden. Anschließend nimmst du Änderungen an einer oder mehrerer dieser Dateien vor. Sobald du damit fertig bist, kannst du via Git eine neue Version bzw. einen Snapshot - einen sogenannten commit - erzeugen. Dieser kann anschließend mit einem Git-Server synchronisiert werden.
Durch die Erzeugung möglichst vieler Commits und regelmäßigen Synchronisationen mit dem Server, können auch problemlos mehrere Personen an einem Projekt (zeitgleich) arbeiten und dies teilweise sogar in der gleichen Datei.

  • Ich lade mir zuerst die neueste Version herunter (pull)
  • Ich nehme Änderungen an meinen Dateien vor, bzw. füge neue Dateien hinzu oder lösche diese
  • Ich lege fest welche Änderungen ich übernehmen möchte (add)
  • Ich erzeuge eine neue Version (commit)
  • Ich lade meine neu erzeugte Version auf den Git-Server hoch (push)

Git Setup

Damit du Git verwenden kannst, benötigst du zunächst einmal einen Git-Server auf dem du deine verschiedenen Git-Versionen speichern kannst. Der wohl bekannteste Dienst hierfür ist GitHub.

Anschließend musst du Git auf deinem Computer installieren.

Versionsverwaltung

Git

Software zur verteilten Versionsverwaltung von Dateien

Download Mehr erfahren

Sobald du Git heruntergeladen und installiert hast, müssen noch ein paar Konfigurationen vorgenommen werden.

git config --global user.name "[Dein Name]"
git config --global user.email "[Deine Email-Adresse]"

Anschließend kannst du entweder ein neues Git Repository (=Projekt) anlegen anhand eines bestehenden Verzeichnisses

git init

oder aber ein bestehendes Projekt von einem Server herunterladen:

git clone [URL zum Git-Repository]

Beachte: unter Umständen ist es notwendig einen SSH-Key am Git-Server zu hinterlegen, damit du dich authentifizieren kannst - folge hierbei einfach den Anweisungen des jeweiligen Git-Servers bzw. Dienstes.

Nun wo du dein Git-Projekt erfolgreich eingerichtet hast, kommen wir zum tatsächlichen Cheatsheet

Der Cheatsheet - die wichtigsten Git-Befehle

Tägliches Arbeiten mit Git

  • git status - Auflistung der "geänderten" Dateien und welche davon zum nächsten Commit hinzugefügt werden sollen
    git status
  • git add - Datei zum nächsten Commit hinzufügen
    git add [pfad/zur/Datei]
  • git reset - Datei vom nächsten Commit entfernen - aber Änderungen trotzdem beibehalten
    git reset [pfad/zur/Datei]
  • git rm - eine Datei komplett aus dem Projekt löschen
    git rm [pfad/zur/Datei]
  • git mv - eine Datei verschieben bzw. umbenennen
    git mv [pfad/zur/alten/Datei] [pfad/zur/neuen/Datei]
  • git checkout -- - Änderungen einer Datei - vor einem Commit - verwerfen
    Beachte: hierbei werden deine noch nicht commited Changes unwideruflich verworfen!
    git checkout -- [pfad/zur/Datei]
  • git diff - zeigt an welche Änderungen du vorgenommen hast
    git diff
    git diff --staged
    git diff [pfad/zur/Datei]
  • git commit - neue neue Version bzw. einen Commit erzeugen
    Beachte: du musst unbedingt vorher git add ausführen
    git commit -m "Kommentar was du geändert hast"
  • git log - zeigt den kompletten Versionsverlauf (=Liste der Commits) für den aktiven Branch an
    git status

Synchronisieren mit dem Server

  • git fetch - alle neuen Branches vom Git-Server laden
    git fetch
  • git pull - alle Commits vom Git-Server herunterladen (führt automatisch ein git fetch aus)
    git pull
    git pull origin master
    git pull origin [Branch]
  • git push - erzeugte Commits auf den Git-Server hochladen
    Beachte: du musst unbedingt vorher git commit ausführen
    git push
    git push origin master
    git push origin [Branch]

Branches & Merge

  • git branch - einen neuen Branch anlegen
    git branch [Name des Branches]
    git checkout -b [Name des Branches]
  • git checkout - in einen bestehenden Branch bzw. auf einen bestehenden Commit wechseln
    git checkout [Name des Branches]
    git checkout [Commit-Hash]
  • git branch -d - einen Branch löschen
    git branch -d [Name des Branches]
  • git merge - Branches zusammenführen bzw. mergen
    Beachte: hier muss der "Name des Branches" angegeben werden, den du in deinen aktuell "aktiven Branch" mergen möchtest
    git merge [Name des Branches]

.gitignore

Falls es Dateien gibt, die du nicht zu deinem Git-Repository hinzufügen bzw. hochladen möchtest, also diese komplett vom Git ignorieren lassen möchtest, kannst du dies mit Hilfe einer sogenannten .gitignore Datei machen.
Dazu erstellst du einfach eine neue Datei in deinem Git-Repository mit dem Namen .gitignore, in der du eine Liste von Ausnahmen definieren kannst.

logs/
.DS_Store
vendor/*
*.pem

Wir hoffen dass dir dieser Cheatsheet in Zukunft eine große Hilfe ist.
Viel Spaß damit! 😉

Das könnte dich auch interessieren

Die Bedeutung von Versionsnummern

Was hat es mit diesen mysteriösen Updates und Vers...

Der wohl beste und unschlagbar schnellste Code-Editor

Mit diesem Editor kannst du nicht nur besser - son...

Diese Top Plugins sind ein Must-have für Sublime Text Benutzer

Mithilfe dieser Plugins machst du aus deinem einfa...