Wichtige Git Befehle Benutzer ändern – an Repository anpassen Änderungen rückgängig machen – git revert revert Commit revert Merge Dateien von der Überwachung entfernen Aktuellen Zweig zu diesem Commit zurücksetzen Git Pull Verhalten (rebase true/false) 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: git revert – offizielle Dokumentation revert-a-faulty-merge How-To 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: Infos: unsere-schule Codes