Összefésülés után a master ág kisimul, tiszta lesz, úgynevezett fast forward merge történik, alapértelmezetten. A devel1 ágnak nyoma sincs ilyen formában.
Ha szeretnénk, hogy megmaradjon az ág, vagyis a fast forwardot szeretnénk elkerülni, akkor használjuk a --no-ff kapcsolót.
git merge --no-ff devel1
A összefésülés megoldható a rebase paranccsal is, de csak abban az esetben, ha mások nem fejlesztenek erre az ágra.
git rebase devel1
A konfliktusok kezelhetők szimpla szövegszerkesztőben is. A kódfejlesztők, mint a VSCode is biztosítanak konfliktuskezelést. De telepíthetünk kifejezetten erre a célra létrehozott szoftvert is, mint a Meld.
Telepítsünk Meld konfliktuskezelőt:
choco install meld
Vagy a Vimdiff:
choco install vim
A Meld beállítása:
git config merge.tool meld
Vagy a vimdiff beállítása:
git config merge.tool vimdiff
A megjelenítés stílusának beállítása:
git config merge.conflictstyle diff3
A konfliktuskezelő előtt a prompt megjelenítése:
git config mergetool.prompt false
Ha ugyanazon az ágon többen is dolgozunk, a git pull utasítás előtt meg kell határoznunk hogy szeretnénk összefésülni.
Az összefésülés módjainak választására figyelmeztetés kapunk:
hint: You have divergent branches and need to specify how to reconcile them. hint: You can do so by running one of the following commands sometime before hint: your next pull: hint: hint: git config pull.rebase false # merge hint: git config pull.rebase true # rebase hint: git config pull.ff only # fast-forward only hint: hint: You can replace "git config" with "git config --global" to set a default hint: preference for all repositories. You can also pass --rebase, --no-rebase, hint: or --ff-only on the command line to override the configured default per hint: invocation. fatal: Need to specify how to reconcile divergent branches.
Az első az ajánlott:
git config pull.rebase false # merge