Git Tipps: Unterschied zwischen den Versionen
Zeile 39: | Zeile 39: | ||
== Commits aufspalten und neu zusammensetzen == | == Commits aufspalten und neu zusammensetzen == | ||
+ | |||
+ | ACHTUNG: NIE in einer produktiven Version durchführen!<br /> | ||
+ | |||
+ | * Mit 'git log' oder tig (siehe unten) den HASH des Commits herausfinden | ||
+ | * git rebase -i HASH^ (wichtig das ^ nach dem HASH einfügen, da damit der Commit vorher ausgewählt wird) | ||
+ | * im neuen Fenster bei dem Commit, der geändert werden soll 'pick' durch 'edit' ersetzen und abspeichern | ||
+ | * git reset HEAD^ | ||
+ | |||
+ | Wenn etwas beim rebase schief läuft:<br /> | ||
+ | git rebase --abort | ||
== Weitere Werkzeuge == | == Weitere Werkzeuge == |
Version vom 5. April 2019, 00:07 Uhr
Grundprinzip
Eine veränderte oder neue Datei kann sich in 3 Zuständen befinden:
- modified (verändert) bzw. neu erstellt
- staged (für Commit vorbereitet)
- committed (Commit ausgeführt, gesichert)
Einstellungen
vim als Editor für Git einstellen:
git config --global diff.tool vimdiff
Bestätigung beim Editieren jeder Datei ausschalten:
git config --global difftool.prompt false
Alias d für difftool setzen:
git config --global alias.d difftool
Anschliessend können mit folgenden Befehlen zwei Fenster geöffnet werden zum Vergleich der Änderungen:
git d [Dateiname] (Änderungen, die noch nicht in der Staging Area sind anzeigen)
git d --cached [Dateiname] (Änderungen in der Staging Area anzeigen)
Commits vorbereiten
- git add [Dateiname] Datei "Dateiname" in Staging Area übernehmen
- git reset [Dateiname] Datei "Dateiname" aus Staging Area entfernen, aber als veränderte Datei behalten (Umkehrung von git add)
- git rm [Dateiname] ...Erklärung fehlt noch...
Änderungen, die nicht committed werden sollen, sichern, bevor z.B. auf einen anderen branch gewechselt werden kann:
- git stash alle Änderungen sichern und verstecken
- git stash show die versteckten gesicherten Änderungen anzeigen
- git stash pop die versteckten gesicherten Änderungen zurückholen und die Sicherung löschen
- git stash apply die versteckten gesicherten Änderungen zurückholen und die Sicherung behalten
Commits aufspalten und neu zusammensetzen
ACHTUNG: NIE in einer produktiven Version durchführen!
- Mit 'git log' oder tig (siehe unten) den HASH des Commits herausfinden
- git rebase -i HASH^ (wichtig das ^ nach dem HASH einfügen, da damit der Commit vorher ausgewählt wird)
- im neuen Fenster bei dem Commit, der geändert werden soll 'pick' durch 'edit' ersetzen und abspeichern
- git reset HEAD^
Wenn etwas beim rebase schief läuft:
git rebase --abort
Weitere Werkzeuge
tig
Alternative zu git log
Beispiele:
- tig: zeigt zeilenweise die letzten Commits an
- tig branchname: zeigt die letzten Commits von Branch branchname
- Enter-Taste: Öffnet den gerade ausgewählten Commit in einem Fenster unterhalb
- /muster: sucht in allen Commits nach "muster" → Taste n für weitersuchen
- C: cherry-pick falls anderer Branch geöffnet ist