Tananyag‎ > ‎Git‎ > ‎

Git merge

Az brancheknél láttuk, hogy a merge-elés két branch egyesítését jelenti. Pontosabban egy branch egy másikba való beolvasztását. Ez azt jelenti, hogy csak az egyik branch (amibe beolvasztunk) módosul. Emeljünk ki a branches példából egy kis részt!

Itt a piros branchet olvasztottuk a zöldbe. Tehát a 7-es commitnak két "őse" van, a zöld 5-ös és a piros 6-os. Látszik, hogy a zöld branch módosult, a piros nem. Tehát ha ezután commitolunk a zöld branch-re akkor a 7-es commitot folytatjuk, de a piros branchen a 6-ost.

De hogyan lehet két commitot összefésülni?

Ha a két branchen az utolsó közös pont óta csak különböző fájlok módosultak, akkor egyértelmű: minden esetben válasszuk a frissebbet, mert az a közös pont óta szerkesztve lett.

De mi történik, ha mindkét branch ugyanazzal a fájllal foglalkozott? Ebben az esetben azt mondjuk, hogy konfliktus lépett fel. Nem választhatjuk egyértelműen egyik fájlverziót sem, mert mind a kettő újabb a másiknál bizonyos részében. Ebben az esetben nekünk kézzel kell megadni, hogy melyik fájlból melyik részt akarjuk megtartani. Ehhez számos IDE segítséget nyújt.

A baloldali az egyik változat, a jobboldali a másik. Középre kell összeraknunk egy összefésült változatot, kiválasztva, hogy melyik rész kell jobbról, melyik balról.