Seitenhistorie
...
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 zum 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.
- Mittels 'git checkout [–base|–ours|–theirs]' kann man den Konflikt 'hart' für eine Datei lösen.
- Ebenfalls sinnvoll sind die Kommandos 'git diff [–base|--ours|--theirs]', 'git log --merge' und 'gitk --merge'
...
- git mergetool
Dieses Tool arbeitet mit diversen 3-Wege-Diff GUIs zusammen (emerge, gvimdiff, kdiff3, meld, vimdiff, tortoisemerge). Unter Linux empfehle ich, kdiff3 zu installieren und zu benutzen. Anleitungen für kdiff3 und meld. - 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. Die Konfliktbeseitigung wird hier beschrieben. - Das 3-Wege-Diff GUI aus SourceTree (nur OsX)
Überblick
Inhalte