Ü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 a
esc
, 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 af
parancsot a commitpick
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 agit rebase --continue
értéket., Átugorhatja a konfliktusos elkövetést agit rebase --skip
beírásával, állítsa le az újraindítást agit 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.