Különbség a Git ReBase és az egyesítés között

Ebben a cikkben két ilyen eszközt fogunk megvitatni, a Rebase és az Merge, valamint azok különbségeit. A GIT a programozók körében a leggyakrabban használt elosztott verzióvezérlő, a programozók körében, dinamikus jellege és a verziók kezelésére szolgáló hatalmas eszközszolgáltatás miatt. Kétféle módon küldhetjük el változásainkat az egyik ágaról a másikra. Az egyik a Rebase használatával, a másik pedig a Merge, amely elég népszerű. Az alábbiakban megismerjük a Git ReBase és az Merge összehasonlítását.

Összehasonlítás a Git ReBase és az egyesítés között (Infographics)

Az alábbiakban bemutatjuk a Git ReBase és az Merge öt legfontosabb összehasonlítását:

Főbb különbségek a Git ReBase és az egyesítés között

Beszéljük meg a Git ReBase vs Merge közötti különbséget:

1. Git Rebase

Git Rebase munkáját a két ág közötti közös kötelezettségvállalásból indítja. Mester és szolgáltatás, innen összehasonlítja mindkettőt, és rögzíti az egyik ágban elvégzett különbség pillanatképét, majd hozzáadja másokhoz. Nézzük meg erre az alábbi képernyőképeket.

Képzeljük el, hogy van egy mesterágunk, és legújabb elkötelezettséget vállalunk rá m2-en, ahogy a fenti képen látható. Ebből a kötelezettségvállalásból létrehozunk egy szolgáltatáságot, és végrehajtottunk néhány módosítást és elköteleztük az f1 üzenetet. Tegyük fel például, hogy valaki egyesítette a mester munkáját, és most a mester legutóbbi elkötelezettsége m3, nem m2, az alább látható módon.

Továbbá tovább dolgozunk a szolgáltatáságon, hogy hozzáadjuk legutóbbi elkötelezettségét az f2-hez az alábbiak szerint.

Amint az a fenti képernyőképernyőről látható, elsajátítottuk a legfrissebb m3-t, és van olyan funkciónk, amely nem naprakész a mesterrel, mivel azt a m2 activ pillanatképből hozták létre, amelyben a legutóbbi f3. Az alábbiakban bemutatjuk ezeket az erőfeszítéseket a mesterrel a generáláshoz.

Most integrálnunk kell a fenti változtatásokat, amelyek kétféle módon hajthatók végre: az egyesítés és a másik az újrabecslés. Itt megvizsgáljuk, hogyan lehet integrálni a rebase-rel.

$ git checkout feature
Switched to a new branch 'feature'
$ git rebase master

A fenti rebase parancs alapján megpróbálunk közös elkötelezettséget keresni mind a master, mind pedig a funkció alapján, és ebben az esetben m2. És miután újból el kell mágneseznünk a master-et, a Master-szel elvégzett kiegészítéseket fogja keresni, és pillanatfelvételt készít a m3-ről és a rebase funkciót m2-ről m3-re. Tehát most van egy olyan funkció, amelyben m3 (a m2 helyett) van, az f1, f2 kötelező. Most alkalmazhatom a szolgáltatás újbóli elkészítését, hogy a fő ág frissüljön a szolgáltatás megváltoztatásával. Az egyik dolog, amelyre emlékezni kell, a mester változásait ellenőrizni kell. Itt csak példaként mutatom be.

$ git checkout master
Switched to a new branch 'master'
$ git rebase feature

Ebben a cikkben a legfrissebb, az f2-es elkötelezettség-funkciót alkalmazzuk, és a master legutóbbi átadási pillanatképe az f2 lesz. A git log paranccsal felsorolhatja a kötelezettségvállalásokat, de először meg kell vizsgálnunk, hogy melyik ághoz kell látnunk a naplót, mint az alábbiakban.

$ git checkout feature
Switched to a new branch 'feature'
$ git log

A rebase-rel mostantól integráltuk egy szolgáltatás frissítéseit. Próbáljuk meg ezt egyesítés útján elérni.

2. Git Merge

A fenti képernyőképet itt is referenciaként fogjuk használni, és ugyanazt érhetjük el, mint amit az újbóli létrehozással és az egyesítéssel értünk el.

A Git merge az utolsó elkötelezettséget vállalja, amelyet a szolgáltatáságazatban vállaltunk, és ebben az esetben az f2 vállalkozás, amely összegyűjti az összes változást és egyesíti azt a legutóbbi elkötelezettséggel, amelyet a fő ágazatban, m3 itt találunk. Ez bonyolultnak tűnik, de az egyesítés paranccsal könnyen végrehajtható. Vagy végezhetünk közvetlen összeolvadást vagy squash-összeolvadást, és a különbség mindkettőben megtörténhet.

$ git checkout master
Switched to a new branch 'master'
$ git merge feature

A fenti parancs elvégzi a szolgáltatás összes kötelezettségvállalását, és hozzáadja a mester naplójába is. Annak elkerülése érdekében használhatunk squash-t, hogy a mester naplójában m3 után csak egy kötelezettséget vállalunk, és ez friss

$ git checkout master
Switched to a new branch 'master'
$ git merge –squash feature

óvatosnak kell lennie a git rebáz használata közben, és meg kell próbálnia elkerülni. Az aranyszabály az, hogy kerülje el nyilvános fióktelepek használatával.


Csak nézd meg a fenti forgatókönyvet. Ez akkor fordulhat elő, ha megpróbálja újból alapozni a mestert a szolgáltatás ágán, és a fő ág nyilvános, most a fő ág frissül, de mindenki más dolgozik a master régebbi verzióján. Mivel az újbóli bevezetés vadonatúj elkötelezettségeket eredményez, úgy gondolhatja, hogy a mesterág története elkülönült másoktól. Az egyetlen módja ennek megoldására az, hogy mindkét mestert összehangolják, összeillesztve őket, és ennek eredményeként megzavaró kötelezettségvállalásokkal rendelkeznek.

A Git ReBase és az egyesítés összehasonlító táblázata

Az alábbi táblázat összefoglalja a Git ReBase és a Merge összehasonlításait:

A Rebase és az egyesítés összehasonlításának alapjai Rebase Összeolvad
elköteleziMegváltoztatja és átírja az előzményeket azáltal, hogy új kötelezettséget hoz létre a forráság minden egyes elkötelezettségére.Magában foglalja a forrás összes változását, de fenntartja az egyes kötelezettségvállalási előzmények őseit, magában foglalja az összes változást a forrásban, de fenntartja az egyes kötelezettségvállalási előzmények őseit.
KiválasztásItt először megnézjük azt a fiókot, amelyet újra el kell helyezni, majd kiválasztjuk a rebase parancsot
frissítések hozzáadása másokhoz.
Itt először nézd meg a fiókot, amelyet előbb össze kell vonni. Ezután hajtsa végre a forrás egyesítési műveletét és legutóbbi átadását
egyesülnek a mester legújabb kötelezettségvállalásával.
KonfliktuskezelésMivel a kötelezettségvállalási történelem átírásra kerül, hogy megértsük a konfliktust
néhány eset.
Az egyesülési konfliktus könnyen kezelhető az egyesülés során elkövetett hiba megértésével.
aranyszabályA nyilvános ágon kell felhasználni, mivel a történelem elkövetése zavart okozhat.Nem sok kárt okoz az állami fióktelepek teljesítése során.
elérhetőségAzok a kötelezettségvállalások, amelyek valaha is elérhetők voltak, a rebase után nem lesznek elérhetőek, mivel a kötelezettségvállalási előzmények megváltoztak.

A kötelezettségvállalások elérhetőek maradnak
a forráságakból.

Következtetés

Az egyesítés és a Rebase a Git két nagyhatású eszközének egyaránt, és mindkettőt beépítik a fióktelepek változásaiba, de kissé óvatosnak kell lennünk a rebase-rel, mivel ez átírja a kötelezettségvállalások történetét, és ezek használata állami fióktelepeken akadályozhatja a munkát mások zavart okoztak. Mivel használhatja az egyesítési opciót, mivel annak elkötelezettségei elérhetők a forráságból, és könnyen meg tudják oldani az egyesítési konfliktusokat, ha megfelelő megértésünk van.

Ajánlott cikkek

Ez egy útmutató a Git ReBase és az Merge közötti különbséghez. Itt is tárgyaljuk a Git ReBase vs Merge kulcsfontosságú különbségeket az infographics és az összehasonlító táblázat segítségével. Lehet, hogy megnézi a következő cikkeket is, ha többet szeretne megtudni -

  1. Git Fetch vs Git Pull - Legfontosabb különbségek
  2. Absztrakció vs beágyazás | A 6 legjobb összehasonlítás
  3. A HBase architektúrája előnyeivel
  4. GIT interjúkérdések | Top 11
  5. GIT verziószabályozó rendszer
  6. Git Push
  7. Beágyazás a JavaScript-be
  8. Teljes útmutató a Git távoli parancshoz
  9. A Git életciklusának három szakasza a munkafolyamattal
  10. Hogyan kell használni a GIT Cherry-pick példát?

Kategória: