Den Ultimate Guiden til Git slå sammen og Git Rebase

Velkommen til vår ultimate guide til git merge og git rebase kommandoer. Denne opplæringen vil lære deg alt du trenger å vite om å kombinere flere grener med Git.

Git Merge

git merge – kommandoen vil flette alle endringene som ble gjort i koden base på en egen gren til gjeldende gren som en ny revisjon.,

kommandosyntaksen er som følger:

git merge BRANCH-NAME

For eksempel, hvis du jobber i en avdeling som heter dev og ønsker å slå sammen eventuelle nye endringer som ble gjort i en avdeling som heter new-features du skulle gi følgende kommando:

git merge new-features

Merk: Hvis det er noen ukommiterte endringer på gjeldende gren, Git vil ikke tillate deg å slå sammen før alle endringer i gjeldende gren har blitt begått., For å håndtere disse endringene, kan du enten:

du vil Opprette en ny gren og forplikte seg endringene

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

Stash dem

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

Forkaste alle endringer

git reset --hard # removes all pending changes

Git Rebase

Rebasing en filial i Git er en måte å flytte helhet av en filial til et annet punkt i treet. Den enkleste eksempel er å flytte en gren lenger opp i treet., Si vi har en gren som skilte seg fra master gren på punkt En:

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

Når du rebase kan du flytte det slik:

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

for Å rebase, sørg for at du har alle de begår du vil i rebase i master-gren. Sjekk ut den grenen du ønsker å rebase og type git rebase master (der master er den grenen du ønsker å rebase på)., som for eksempel en gren som var basert på en annen gren (la oss kalle den funksjonen) er rebased på master:

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

Etter git rebase master branch eller git rebase master når du har sjekket deg ut gren, vil du få:

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

Git rebase interaktive i konsoll

for Å bruke git rebase i konsollen med en liste over forplikter du kan velge, redigere eller nedgang i rebase:

  • Enter git rebase -i HEAD~5 med det siste nummeret som helst antall innsendinger fra de siste bakover du ønsker å gjennomgå.,
  • I vim, trykker du på esc, deretter i for å starte redigering av testen.
  • På venstre side kan du overskrive pick med en av kommandoene nedenfor. Hvis du ønsker å ta knekken på en forplikte seg til en tidligere og kast begå en melding, skriver du inn f i stedet for pick av forplikte seg.
  • Lagre og avslutte tekst-editor.
  • Når rebase er stoppet, gjør de nødvendige justeringer, og så bruke git rebase --continue til rebase er vellykket.,
  • Hvis det rebases hell deretter må du tvinge trykk endringene med git push -f for å legge til rebased versjon til den eksterne depot.
  • Dersom det er en sammenslåing konflikt, er det en rekke måter å fikse dette, herunder å følge anbefalingene i denne veiledningen. En måte er å åpne filene i en tekst-editor og slette deler av koden som du ikke ønsker. Deretter kan du bruke git add <file name> etterfulgt av git rebase --continue., Du kan hoppe over konfliktfylt forplikte seg ved å fylle inn git rebase --skip, stoppe rebasing ved å kjøre git rebase --abort i konsollen.

slå sammen Konflikter

merge konflikten er når du gjør forplikter seg på separate grener som endrer den samme linjen i en motstridende måter.,hvilken versjon av filen for å holde i en feilmelding som ligner på følgende:

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

Hvis du ser på resumé.txt fil i koden din editor, kan du se hvor konflikten fant sted:

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

Git lagt til noen ekstra linjer i filen:

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

Git Fusjonere vs Git Rebase

Begge git merge og git rebase er meget nyttige kommandoer, og man er ikke bedre enn den andre., Det er imidlertid noen svært viktige forskjeller mellom de to kommandoer som du og ditt team bør ta hensyn til.

Når git merge kjøres, en ekstra flette forplikte er opprettet. Når du arbeider i ditt lokale depot, ved å ha for mange fusjonere begår kan gjøre begå historie ser forvirrende. En måte å unngå merge begå er å bruke git rebase i stedet.

git rebase er en svært kraftig funksjon. Det blir sagt, det er risikabelt som godt hvis den ikke blir brukt på riktig måte., git rebase endrer begå historie, så bruk den med omhu. Hvis rebasing er gjort i den eksterne depot, da det kan skape mye problemer når andre utviklere prøver å trekke den nyeste koden endringer fra den eksterne depot. Husk å bare kjøre git rebase i en lokal depotet.

Det er alt du trenger å vite for å slå sammen og rebase med de beste av dem.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *