Wichtige Git Befehle

Benutzer ändern – an Repository anpassen

Bei der Benutzung von online Repositories benötigt man in git einen Benutzernamen und E-Mailadresse.

Damit z.B.: GitHub die lokalen Commits dem GitHub Account zuordnet, muss der lokal eingestellte git Benutzer dem von GitHub entsprechen (E-Mailadresse).

Diese Daten kann man entweder für ein einzelnes Repository oder global einstellen und mit folgenden Befehlen auslesen:

// listet den Inhalt der Config auf:
// Nutzer eines Repositories
git config --local --list

// globaler Nutzer
git config --global --list

Hier wird dann der aktuell genutzte Benutzer angezeigt, z.B.:

Ergebnis von: git config –global –list

Mit folgendem Befehl kann man den globalen Nutzer anlegen. Das ist bei mir mein GitHub Account, da ich viele Repositories nutze und neu erstelle:

//neuer Benutzer wird global angelegt:
git config --global user.email "r.sch@gmail.com"
git config --global user.name "Richard"

Mit folgendem Befehl kann man einen lokalen für ein Repository geltenden Nutzer anlegen. Der Befehl muss im gewünschten Repository ausgeführt werden. Den lokalen Nutzer, nutze ich bei Repositories, die nicht mit dem GitHub Account verbunden sind:

//neuer Benutzer wird für ein Repository angelegt:
git config --local user.email "r.sch@msush.de"
git config --local user.name "Richard"

nicht gepushten Commits rückgängig machen

Macht immer den zuletzt ausgeführten Commit rückgängig und die Dateien bleiben erhalten und können in einen neuen Commit zusammengefasst werden:

git reset HEAD^

Änderungen rückgängig machen – git revert

Mit git revert kann man einen Commit oder einen Merge rückgängig machen.

revert Commit

Einen Commit kann man ganz einfach mit der Angabe der Commit ID rückgängig machen:

git revert <commit ID>

Oder man nutzt dafür Sourcetree:

revert Merge

Beispiel 1: In diesem Beispiel war der selektierte Merge falsch und musste rückgängig gemacht werden.

Der eigentliche Master Zweig, bei dem alles in Ordnung war, war der grüne. Mit folgendem Befehl wurde der Merge rückgängig gemacht:

git revert -m2 <commit/merge ID>

Um Merges rückgängig zu machen muss man den „-m“ Parameter angeben. Dieser Parameter heißt ausgeschrieben: „-mainline parent-number„, also welcher der beiden Zweige eines Merge soll beibehalten werden.

In unserem Beispiel ist der rote Zweig m1 und der grüne Zweig m2. Grün war richtig deswegen der Parameter -m2.

Beispiel 2: Hier kam es zu einem „evil merge“ und Änderungen aus dem roten Zweig gingen verloren. Daher musste dieser zurückgesetzt werden:

git revert -m2 <commit/merge ID>
//z.B.:
git revert -m2 7209d81

Hier war wie oben der zweite Zweig der richtige, deshalb auch hier der Parameter -m2.

Vergleiche:

In diesem Beispiel war der grüne der richtige Zweig, also musste man -m2 nutzen.

Dateien von der Überwachung entfernen

Will man Dateien oder Ordner, die bereits von Git überwacht werden, nicht mehr überwachen lassen, zum Beispiel, damit man diese Dateien oder Ordner in die .gitignore Liste aufnehmen kann, muss man diesen Befehl ausführen:

//entfernt alle Dateien im Ordner "dist" vom Git Index aber nicht vom Dateisystem  
git rm -r --cached dist

Aktuellen Zweig zu diesem Commit zurücksetzen

Dies kann sinnvoll sein, wenn man lokal entwickelt und lokale Commits getätigt hat, zum Beispiel für Tests. Will man diese verwerfen kann man auf einen früheren Commit zurückkehren und alle Änderungen ungeschehen machen (mit Option –hard).

//Zweig auf Commit mittels ID zurücksetzen
git reset --hard d2981c1d03c05a8a39cf21747c3a50e64a787036

Die Option „–hard“ gibt an, dass alle Änderungen nach diesem Commit gelöscht werden.

In Sourcetree:

Git Pull – Verhalten (rebase false/true)

Wenn „pull.rebase“ auf „true“ gesetzt wird, entspricht git pull immer git pull –rebase. Die Standardeinstellung ist „false“.

git config --global pull.rebase false

unsere-schule.org

×

Wichtige Git Befehle

Code: