Ghidul Ultimate la Git Merge si Git Rebazare

bine ați venit la ghidul ultimate la git merge și git rebase comenzile. Acest tutorial vă va învăța tot ce trebuie să știți despre combinarea mai multor ramuri cu Git.

Git Merge

comanda git merge va îmbina orice modificări care au fost făcute la baza de cod pe o ramură separată la ramura curentă ca o nouă comitere.,

sintaxa comenzii este următoarea:

git merge BRANCH-NAME

De exemplu, dacă în prezent sunteți angajat într-o ramură numită dev și-ar dori să fuzioneze noi modificări care au fost făcute într-o ramură numită new-features, te va emite următoarea comandă:

git merge new-features

Notă: Dacă există orice modificări neconfirmate pe ramură de curent, Git nu vă va permite să fuzioneze până când toate modificările în ramură de curent au fost comise., Să se ocupe de aceste modificări, puteți fie să:

de a Crea o nouă ramură și comite modificările

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

Ascunzătoarea ei

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

a Abandona toate modificările

git reset --hard # removes all pending changes

Git Rebazare

Rebasing o sucursală în Git este un mod de a muta toate elementele unei sucursale la un alt punct în copac. Cel mai simplu exemplu este mutarea unei ramuri mai sus în copac., Spunem că avem o ramură care s-a abătut de ramura de master la punct O:

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

atunci Când rebazare puteți muta o astfel de prognoze:

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

Pentru rebazare, asigurați-vă că aveți toate comite vrei în rebazare în ramura master. Verificați ramura pe care doriți să o rebase și tastați git rebase master (unde master este ramura pe care doriți să o rebase)., că, de exemplu, o ramură care s-a bazat pe o altă ramură (să-l numim caracteristică) este indexat pe maestru:

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

git rebase master branch sau git rebase master când ai verificat ramură, vei primi:

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

Git rebazare interactive in consola

utilizare git rebase in consola cu o listă a comite puteți alege, edita sau picătură în rebazare:

  • Introducere git rebase -i HEAD~5 cu ultimul număr fiind orice număr de comite din cele mai recente invers doriți să revizuiască.,
  • În vim, apăsați esc, apoi i pentru a începe editarea testului.
  • în partea stângă puteți suprascrie pick cu una dintre comenzile de mai jos. Dacă doriți să strivească o comite într-una anterioară și aruncați comite mesaj, introduceți f în loc de pick a comis-o.
  • Salvați și părăsiți editorul de text.
  • când rebase este oprit, face ajustările necesare, apoi utilizațigit rebase --continue până când rebase este de succes.,
  • Dacă rebases cu succes, atunci ai nevoie pentru a forța de a împinge modificările cu git push -f pentru a adăuga indexate versiune la depozit la distanță.
  • dacă există un conflict de îmbinare, există o serie de modalități de a remedia acest lucru, inclusiv urmând sugestiile din acest ghid. O modalitate este să deschideți fișierele într-un editor de text și să ștergeți părțile codului pe care nu le doriți. Apoi folosiți git add <file name>urmat de git rebase --continue., Puteți sări peste conflict comite prin introducerea git rebase --skip, opri rebasing de funcționare git rebase --abort in consola.

conflicte de îmbinare

un conflict de îmbinare este atunci când faceți comiteri pe ramuri separate care modifică aceeași linie în moduri conflictuale.,care versiune a fișierului pentru a păstra într-un mesaj de eroare similar cu următorul:

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

Dacă te uiți la resumé.txt fișier în editorul de cod, puteți vedea în cazul în care conflictul a avut loc:

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

Git adăugat câteva linii suplimentare la dosar:

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

Git Merge vs Git Rebazare

Ambele git merge și git rebase sunt foarte utile comenzi, și unul nu este mai bun decât celălalt., Cu toate acestea, există unele diferențe foarte importante între cele două comenzi pe care tu și echipa ta ar trebui să ia în considerare.

ori de câte ori git merge este rulat, se creează o comitere suplimentară de îmbinare. Ori de câte ori lucrați în depozitul local, având prea multe comiteri de îmbinare poate face ca istoricul comiterii să pară confuz. O modalitate de a evita merge commit este de a utiliza git rebase în schimb.

git rebase este o caracteristică foarte puternică. Acestea fiind spuse, este riscant, de asemenea, dacă nu este folosit în mod corect., git rebase modifică Istoricul comiterii, deci folosiți-l cu grijă. Dacă rebasing-ul se face în depozitul de la distanță, atunci poate crea o mulțime de probleme atunci când alți dezvoltatori încearcă să tragă cele mai recente modificări de cod din depozitul de la distanță. Nu uitați să rulați doar git rebase într-un depozit local.

asta e tot ce trebuie să știți pentru a fuziona și rebase cu cele mai bune dintre ele.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *