Seitenhistorie
...
- git merge (verfügbar: --abort)
- git pull
- git rebase (verfügbar: --continue, --abort, --skip)
- git cherry-pick (verfügbar: --continue, --abort, --quit)
- git stash (bei pop, apply and branch)
Warnung |
---|
Bei 'git rebase x y' werden die Änderungen von Branch y auf x angewendet. Technisch wird also x der aktuelle Branch, auf denen dann die Patches/Diffs der Commits in y angewendet werden. Im praktischen Leben bedeutet dies (meist), dass die Tools zur manuellen Konfliktbeseitigung meine (ours) Änderungen als remote/theirs Anzeigen! Dies liegt daran, dass Rebase x zu aktuellen Branch macht! |
Vorgehen bei einem Konflikt
- Wenn man den Konflikt manuell lösen möchte, ein Tool zu manuellen Konfliktbeseitigung benutzen (s.u.)
- Die gerade laufende git Operation (s.o.) weiterführen (mit --continue), abbrechen (mit --abort), oder überspringen (mit --skip). Diese Optionen stehen nicht bei allen Kommandos zur Verfügung (s.o.)!
- Mittels git status kann man sich immer über den gegenwärtigen Zustand Überblick verschaffen.
- Mittels git show kann man sich die 3 Konfliktdateien (base, ours, theirs) anzeigen lassen.
- Ebenfalls sinnvoll sind die Kommandos 'git diff [–base|--ours|--theirs]', 'git log --merge' und 'gitk --merge'
Tools zur manuellen Konfliktbeseitigung
- git mergetool
Dieses Tool arbeitet mit diversen 3-Wege-Diff GUIs zusammen. Unter Linux empfehle ich, kdiff3 zu installieren und zu benutzen. - Die Team Synchronizing Perspective von Eclipse
Kann ich nicht empfehlen, da das 3-Wege-Diff GUI innerhalb von Eclipse nur sehr wenige Optionen zur Verfügung stellt.
Überblick
Inhalte