A végső útmutató a Git Merge és Git Rebase

Üdvözöljük a végső útmutató a git mergeés git rebase parancsok. Ez a bemutató megtanít mindent, amit tudnia kell a több ág kombinálásáról a Git-vel.

Git Merge

a git merge parancs egyesíti azokat a változtatásokat, amelyek a kódbázisban egy külön ágon történtek az aktuális ághoz, mint új elkövetés.,

A parancs szintaxisa a következő:

git merge BRANCH-NAME

például, ha jelenleg dolgozik egy branch nevű dev szeretne egyesíteni minden új módosítások a branch nevű new-features, akkor a következő parancsot kell kiadni:

git merge new-features

Megjegyzés: Ha nem kötött változások a jelenlegi ág, Git nem teszi lehetővé, hogy a merge, amíg az összes változás a jelenlegi gyülekezeti követtek el., A változások kezeléséhez:

Hozzon létre egy új ágat, és kövesse el a változásokat

git checkout -b new-branch-namegit add .git commit -m "<your commit message>"

git stash # add them to the stashgit merge new-features # do your mergegit stash pop # get the changes back into your working tree

hagyja el az összes változást

git reset --hard # removes all pending changes

Git Rebase

/h2>

egy ág újrafogalmazása a GIT-ben egy módja annak, hogy az ág egészét a fa egy másik pontjára mozgassa. A legegyszerűbb példa egy ág mozgatása a fán., Azt mondják, van egy ág, amely eltért a mester ág, a lényeg Egy:

 /o-----o---o--o-----o--------- branch--o-o--A--o---o---o---o----o--o-o-o--- master

Ha rebase tud mozogni, mint ez:

 /o-----o---o--o-----o------ branch--o-o--A--o---o---o---o----o--o-o-o master

A rebase, győződjön meg róla, hogy minden követ el akarsz a rebase a mester ág. Nézze meg, hogy melyik ágat szeretné újraindítani, majd írja be a git rebase master (ahol a mester az az ág, amelyet újra szeretne indítani)., ez például egy ág, amely alapján egy másik ág (nevezzük funkció) az rebased a mester:

 /---o-o branch /---o-o-o-o---o--o------ feature----o--o-o-A----o---o--o-o-o--o--o- master

Miután a git rebase master branch vagy git rebase master ha le kell ellenőrizni a fióktelep, majd:

 /---o-o-o-o---o--o------ feature----o--o-o-A----o---o--o-o-o--o--o- master \---o-o branch

Git rebase interaktív a konzol

, Hogy a git rebase a konzol egy listát követ el lehet választani, a szerkesztés vagy a csepp a rebase:

  • Enter git rebase -i HEAD~5 az utolsó szám, hogy tetszőleges számú vállalja a legfrissebb visszafelé szeretné, hogy vizsgálja felül.,
  • a Vim-ben nyomja meg aesc, majd ai gombot a teszt szerkesztésének megkezdéséhez.
  • a bal oldalon felülírhatja a pick parancsot az alábbi parancsok egyikével. Ha el akarja dobni a commit-et egy előzőbe, és el akarja dobni a commit üzenetet, írja be a f parancsot a commit pick helyére.
  • mentse el és lépjen ki a szövegszerkesztőből.
  • a rebase leállításakor végezze el a szükséges beállításokat, majd használja a git rebase --continue amíg a rebase sikeres.,
  • ha sikeresen újraindul, akkor kényszeríteni kell a változtatásokat a git push -f segítségével, hogy az újraindított verziót hozzáadja a távoli tárolóhoz.
  • ha van egy merge konfliktus, számos módja van, hogy rögzítse ezt, beleértve a következő javaslatokat ebben az útmutatóban. Ennek egyik módja az, hogy nyissa meg a fájlokat egy szövegszerkesztő, majd törölje a részeket a kód nem akar. Ezután használja a git add <file name>értéket, majd a git rebase --continue értéket., Átugorhatja a konfliktusos elkövetést a git rebase --skip beírásával, állítsa le az újraindítást a git rebase --abort futtatásával a konzolban.

merge Conflicts

a merge conflict akkor jön létre, amikor különálló ágakon követ el kötelezettséget, amelyek ellentétes módon megváltoztatják ugyanazt a sort.,melyik verzió a fájlt, hogy ne egy hasonló hibaüzenet a következő:

CONFLICT (content): Merge conflict in resumé.txt Automatic merge failed; fix conflicts and then commit the result.

Ha megnézzük, hogy a resumé.txt fájl a kód szerkesztő, láthatjuk, ahol a konfliktus került sor:

<<<<<<< HEADAddress: 808 South Street=======Address: 505 North Street>>>>>>> updated_address

Git hozzá néhány további vonalak a fájlt:

  • <<<<<<< HEAD
  • =======
  • >>>>>>> updated_address

Git Merge vs Git Rebase

Mind git merge, illetve git rebase nagyon hasznos parancsok, s az egyik nem jobb, mint a másik., Van azonban néhány nagyon fontos különbség a két parancs között, amelyeket Önnek és csapatának figyelembe kell vennie.

amikor git merge fut, egy extra merge commit jön létre. Amikor dolgozik a helyi adattár, miután túl sok merge elkötelezi lehet, hogy a commit történelem néz zavaró. Az egyesítés elkerülésének egyik módja agit rebase használata.

git rebase egy nagyon erős funkció. Ennek ellenére kockázatos is, ha nem a megfelelő módon használják., git rebase megváltoztatja a commit történetét, ezért óvatosan használja. Ha az újraindítás a távoli tárolóban történik, akkor sok problémát okozhat, amikor más fejlesztők megpróbálják a legújabb kódváltozásokat a távoli tárolóból kihúzni. Ne felejtse el csak futtatni agit rebase helyi tárolóban.

Ez minden, amit tudni kell, hogy egyesítse és rebase a legjobb közülük.

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük