7,540
edits
Changes
→Fast-forward if possible
===Fast-forward if possible===
Ebben az esetben meg fogja próbálni a fast-forward-ot, de ha nem lehetséges, akkor a 3 utas merge-t fogja alkalmazni, és létre fog hozni egy merge commit-ot, aminek a nevében is benne lesz, hogy ez miért keletkezett.Tegyük fel, hogy a távoli branch-en létrejött az A1 commit, ami már lokálisan nem létezik, és lokálisan létrejött a B1 és B2 commit, ami a távoli branch-en hiányzik. Mivel mind lokálisan mind távol is vannak új commit-ok, a 'Fast-forward' pull nem lehetséges. : [[File:ClipCapIt-191118-230025.PNG|400px]]Ekkor a git elsőként le fogja tölteni a távoli A1-et majd lokálisan az A1 és B2-ből létre fog hozni egy merge commit-ot, amire rá fogja állítani a head mutatót: :[[File:ClipCapIt-191118-230351.PNG|400px]]
[[File:ClipCapIt-191112-235732.PNG]]<br>
Fontos, hogy a merge commit csak lokálisan fog létezni addig amíg nem nyomunk egy push-t is rá.
<br><br>
===Rebase===
Ennek csak akkor van értelme, ha a távoli repo-ban és az újban is vannak új commit-ok, ezért nem lehet fast-forward merge-t alkalmazni. Lokálisan, a távoli utolsó commit-ra rá fogja fűzni a lokális új commit-okat, így nem lesz plusz leágazás a commit-logban, az egész egy folytonos vonal esz, viszont elveszik az az információ, hogy a remote és a local elmászott egymástól (ami egyáltalán nem baj, tisztán tartja a commit history-t). Tegyük fel hogy mind lokálisan mind a távoli repoban 2-2 commit történt. GitKraken-ben így néz ki a commit fa: <br>