GIT – Cheat-Sheet – die wichtigsten Befehle

In unregelmäßigen Abständen arbeite ich mit GIT und muss immer wieder überlegen, welchen Befehlt ich benötige. Um Abhilfe zu schaffen eine kurze Übersicht mit einer knappen Erklärung.

Aufbau GIT

Änderungen können in drei Bereichen des lokale Repository passieren:

  • Der erste Bereich ist deine Arbeitskopie (Working Directory), welcher die Dateien und Änderungen an den Dateien enthält.
  • Der zweite Bereich ist der Index (Staging Directory), welcher als Zwischenstufe agiert und eine Vorschau auf deinen nächsten Commit darstellt.
  • Der dritte Bereich ist der HEAD (Repository), der auf deinen letzten Commit zeigt.

Um Änderungen an den Dateien (Working Directory) in die nächste Ebene (Staging Directory) zu übernehmen nutze folgenden Befehl:

git add

* Head (Repository): Alle Änderungen aus der Staging Area werden durch

git commit

zusammengefasst,

Repository auschecken

Erstelle eine Arbeitskopie, indem du folgenden Befehl ausführst:

git clone /pfad/zum/repository

Falls du ein entferntes Repository verwendest, benutze:

git clone username@host:/pfad/zum/repository

Lokale Änderungen: Add und Commit

Du kannst Änderungen zum Index hinzufügen mit

git add 
git add *

Wenn du sämtliche Änderungen im gewünschter Form zusammen hast, kannst du diese mit einem commit zusammenfassen:

git commit -m "Commit-Nachricht"

Die Änderung befinden sich im HEAD, aber noch nicht im entfernten Repository.

Änderungen hochladen

Die Änderungen sind jetzt im HEAD deines lokalen Repositories. Um die Änderungen an dein entferntes Repository zu senden, führe:

git push origin master

aus. Du kannst master auch mit einem beliebigen anderen Branch ersetzen, mehr über Branches erfährst du später.

Wenn du dein lokales Repository nicht von einem entfernten geklont hast und du diese aber mit einem anderen Repository verbinden möchtest, musst du dieses mit

git remote add origin

hinzufügen. Jetzt bist du bereit, deine Änderungen hochzuladen

Branching

Branches (Deutsch Zweige) werden genutzt, um die Entwicklung zu parallelisieren. Mehrere Entwickler arbeiten an verschiedenen Funktionen, welche parallel entwickelt werden. Der master-Branch ist der „Standard“-Branch, wenn du ein neues Repository erstellst. Du solltest aber für die Entwicklung neue Branches erstellen und diese dann in den Master-Branch zusammenführen (mergen).

Erstelle einen neuen Branch mit dem Namen „feature_xy“ und wechsle zu diesem:

git checkout -b feature_x

Um zum Master zurück zu wechseln:

git checkout master

Und um den eben erstellten Branch wieder zu löschen:

git branch -d feature_x

Ein Branch ist nicht für andere verfügbar, bis du diesen in dein entferntes Repository hochlädst:

git push origin

Update & Merge

Um dein lokales Repository mit den neuesten Änderungen zu aktualisieren, verwende:

git pull

in deiner Arbeitskopie, um die Änderungen erst herunterzuladen (fetch) und dann mit deinem Stand zusammenzuführen (merge).
Wenn du einen anderen Branch mit deinem aktuellen (z.B. master) zusammenführen willst, benutze:

git merge

In beiden Fällen versucht git die Änderungen automatisch zusammenzuführen. Unglücklicherweise ist dies nicht immer fehlerfreimöglich, es kommt zu Konflikten. Du bist verantwortlich, diese Konflikte durch manuelles Editieren der betroffenen Dateien zu lösen. Bist du damit fertig, musst du das git mit folgendem Befehl mitteilen:

git add

Bevor du Änderungen zusammenführst solltest du dir die Differenzen anschauen:

git diff

Tagging

Für eine bessere Verwaltung und Nachvollziehbarkeit empfiehlt es sich Releasestags zu setzen. Du kannst einen neuen Tag z.B.: namens 1.9.2 mit folgendem Befehl erstellen:

git tag 1.0.0 f5ccd1c833ebe7a92c187f89ae42e6b60abba8d4

f5ccd1c833ebe7a92c187f89ae42e6b60abba8d4 ist in diesem Fall die Commit-Id, die du mit deinem Tag referenzieren möchtest. Du erhältst die Liste der Commit-IDs mit:

git log

Du kannst auch weniger Zeichen verwenden als die komplette Commit-Id, jedoch muss der Identifier eindeutig sein. .

Änderungen rückgängig machen

Falls du mal etwas falsch machst kannst du die lokalen Änderungen mit:

git checkout --

auf den letzten Stand im HEAD zurücksetzen. Änderungen, die du bereits zum Index hinzugefügt hast, bleiben bestehen.

Wenn du aber deine lokalen Änderungen komplett entfernen möchtest, so überschreib deinen lokalen Stand mit dem vom entfernten Repository mit folgenden Befehlen:

git fetch origin
git reset --hard origin/master

Schnellübersicht

als PDF: Git-Cheat Sheet

Create und Clone

neues Repository erstellen
git init
lokales Repository clonen
git clone /pfad/zum/repository
entferntes Repository clonen
git clone username@host:/pfad/zum/repository

Add und Remove

Änderungen zur Index Stages hinzufügen
git add
Alle Änderungen der Index Stage hinzufügen
git add *
Änderungen löschen
git rm

Commit und Synchronize

Änderungen zur Index Stages hinzufügen
git commit -m "Commit Nachricht"
Push Änderungen zum entfernten Repository
git push origin master
Lokales Rpository mit dem entfernten Repository verbinden
git remote add origin
Lokales Verzeichnis mit den Änderungen aus dem entfernten Verzeichnis updaten
git pull

Branches

Neuen Branch erstellen
git checkout -b
Zum Master Branch wechseln
git checkout master
Branch löschen
git branch -d
Den lokalen branch ins das entfernte Verzeichnis pushen
git push origin

Merge

Änderungen aus einem anderen Branch mergen
git merge
Änderungen zwischen zwei Branches anzeigen
git diff

Tagging

Tag erstellen
git tag
Commit IDs ausgeben
git log

Restore

Arbeitskopie mit der letzten Version aus dem HEAD ersetzen
git checkout --

Weitere Informationen

Beitragsbild: https://pixabay.com/photo-995180/ von User: klimkin

Leave a Comment

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert