Tartalomjegyzék

< Git

Összefésülés

A merge

Ö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 rebase

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

Konfliktuskezelő beállítása

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

Első összefésülés

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

Lásd még