[[oktatas:programozas:verziokontroll:git|< Git]] ====== Összefésülés ====== * **Szerző:** Sallai András * Copyright (c) 2020, Sallai András * Szerkesztve: 2020, 2021, 2023, 2024 * Licenc: [[https://creativecommons.org/licenses/by-sa/4.0/|CC BY-SA 4.0]] * Web: https://szit.hu ===== 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. {{:oktatas:programozas:verziokontroll:fejlesztes_beepitese_01.png|}} 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 ===== * https://www.freecodecamp.org/news/compare-two-files-in-linux-using-vim/ * https://www.tutorialspoint.com/vim/vim_diff.htm