Changes

GitKraken

762 bytes added, 22:18, 18 November 2019
Rebase
===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 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|500px]]Ekkor ha a 'Pull (rebase)' lehetőséget választjuk, akkor a git le fogja tölteni a távoli repoban 2új commit-okat, és ezt be fogja ékelni a lokális régi és új commit-ok közé, vagyis az A1-2 et beékeli a C1 és B1 közé. Úgy is mondhatjuk, hogy az új commit történt-okat ráfűzi a távoli módosításokra (amíg nem nyomunk push-t is, addig csak lokálisan):[[File:ClipCapIt-191118-231423. PNG|500px]]<br><br>GitKraken-ben így ez a következő képen néz ki . Tegyük fel hogy mind lokálisan mind a távoli repoban 2-2 commit fatörtént: <br>
:[[File:ClipCapIt-191117-223115.PNG]]<br>
A távoli repo-ban a 'branch1'-en a 'remote comm r3' és r4. Ezt jelöli a felső zöld 'branch1' téglalap: [[File:ClipCapIt-191117-224443.PNG]]
Lokálisan 'local comm r1' és r2 commit-ok voltak. Jelenleg a lokális repó a 'local comm r2'-re mutat, mivel mellette van a pipa és a kis monitor szimbólum: [[File:ClipCapIt-191117-224417.PNG]]. A közös ős a 'local comm 5'. <br>
Ha most 'Pull (rebase)'-t választjuk, akkor a távoli repo 'remote comm r4'-re rá fogja ültetni a 'local comm r1'-et. (lokálisan) <br>
:[[File:ClipCapIt-191117-223204.PNG]]<br>
A rebase után nem fog többet látszani, hogy a 'local comm r1'-nek valójában a 'local comm 5' volt az őse. <br>
Ha Push-t is nyomunk, akkor a változások változásokat már egy egyszerű 'Fast forward' merge-el el is fel lehet végeznijuttatni, hiszen nincs más dolga a git-nek, mint előre mozgassa a mutatót:
:[[File:ClipCapIt-191117-223325.PNG]]
A 'Force push'-al ellentétben itt nem veszett el a távoli 'remote comm r3' és r4.