Git: Slå sammen Branch til Master

Rask svar – Slå sammen gren til master

Hvis du leter etter et raskt svar, kan du slå sammen en gren til master gren – du checkout master og merge some_branch:

$ git checkout new-branch
# ...develop some code...

$ git add .
$ git commit –m "Some commit message"
$ git checkout master
Switched to branch 'master'
$ git merge new-branch

Du alltid checkout grenen du fusjonerer inn i, og merge en gren som allerede har endringer.

Forstå grensammenslåing med Git

Hvis du er nyere for Git, er det imidlertid verdt å bruke noen minutter på å forstå disse kommandoene og hvordan de fungerer. Det er overraskende enkelt og vil ta deg langt.

OBS: I 2020 vedtok Git (ved siden av store lagringsplattformer som GitHub, GitLab, etc.) en endring i offisiell terminologi, og standard filialnavn ble endret til main, på grunn av den negative konotasjonen ordet master kan innebære. Mange prosjekter har ikke migrert eller gitt nytt navn til hovedgrenene sine, så i overskuelig fremtid – vilkårene master og main vil sannsynligvis bli brukt om hverandre.

En av Gits kraftigste funksjoner er muligheten til å enkelt lage og slå sammen grener og endringer i kodebasen.

Gits distribuerte natur oppmuntrer brukere til å lage nye grener ofte og flette dem regelmessig som en del av utviklingsprosessen – og visse Git-arbeidsflyter utnytter dette i stor grad.

Dette forbedrer grunnleggende utviklingsarbeidsflyten for de fleste prosjekter ved å oppmuntre til mindre, mer fokuserte, detaljerte forpliktelser, underlagt streng fagfellevurdering.

I arv Versjonskontrollsystemer (som CVS) vanskeligheten med å slå sammen begrenset den til avanserte brukere. Andre moderne, men sentraliserte versjonskontrollsystemer som Subversion krever at forpliktelser gjøres til et sentralt depot, så en smidig arbeidsflyt med lokal forgrening og sammenslåing er atypisk.

En ofte brukt forgreningsarbeidsflyt i Git er å lage en ny kodegren for hver ny funksjon, feilretting eller forbedring.

Disse kalles Funksjonsgrener.

Hver gren deler opp forpliktelsene knyttet til en bestemt funksjon. Når den nye funksjonen er fullført – dvs. et sett med endringer har blitt forpliktet på funksjonsgrenen – er den klar til å slås sammen tilbake til hovedgrenen (eller annen hovedkodelinjegren avhengig av arbeidsflyten som er i bruk).

OBS: Funksjonsforgrening er ikke det bare forgreningsarbeidsflyt du kan gå med, men det er en utbredt en, og er aktivert av enkelheten til Gits sammenslåingsfunksjoner.

Slå sammen gren til en annen med Git

De git branch kommandoen brukes til å liste alle eksisterende grener i et depot. En stjerne vil vises ved siden av den aktive grenen:

$ git branch
* master

For å opprette en ny filial kan vi bruke git branch new-branch kommando. Dette vil opprette en ny gren som speiler forpliktelsene på den aktive grenen:

$ git branch new-branch
$ git branch
* master
new-branch

OBS: Bak kulissene, Git ikke faktisk opprette et nytt sett med forpliktelser for å representere den nye grenen. En gren er som en merkelapp, og forpliktelsene er det delt. Du er forgreninger et nytt sett med endringer fra hovedgrenen. Når en funksjonsgren er ferdig og slått sammen til hovedgrenen, blir endringene i den hovedgrenen, til du slår sammen en ny funksjonsgren til hovedgrenen.

På dette tidspunktet har vi opprettet en ny gren, men er fortsatt plassert på kildegrenen. For å begynne å jobbe med den nye grenen må vi først kjøre kommandoen git checkout new-branch. Dette vil endre den aktive grenen til den nye grenen:

$ git checkout new-branch
Switched to branch ‘new-branch'
$ git branch
master
* new-branch

På dette tidspunktet kan det foretas forpliktelser på den nye grenen for å implementere den nye funksjonen. Når funksjonen er fullført, kan grenen slås sammen tilbake til hovedkodegrenen.

Først løper vi git checkout master for å endre den aktive grenen tilbake til master gren. Så kjører vi kommandoen git merge new-branch til slå sammen den nye funksjonen i masteren gren.

OBS: git merge slår sammen den angitte grenen til den aktive grenen. Så vi må være på den grenen vi er smelter sammen i.

Hvis du slår sammen en ny funksjon i hovedgrenen, vil du først bytte til hovedgrenen og deretter slå sammen til den:

# ...develop some code...

$ git add .
$ git commit –m "Some commit message"
$ git checkout master
Switched to branch 'master'
$ git merge new-branch

Sjekk ut vår praktiske, praktiske guide for å lære Git, med beste praksis, bransjeaksepterte standarder og inkludert jukseark. Slutt å google Git-kommandoer og faktisk lære den!

Hvis alt går bra er jobben vår gjort. De nye funksjonsbekreftelsene vises nå i hovedgrenen. Det er imidlertid mulig at Git ikke vil være i stand til å fullføre sammenslåingen på grunn av en konfliktendring i kildegrenen. Dette kalles en slå sammen konflikt.

For å oppsummere, her er kommandoene for å opprette en ny gren, foreta noen forpliktelser og slå den sammen tilbake til master:

$ git checkout master
$ git branch new-branch
$ git checkout new-branch

# ...develop some code...

$ git add .
$ git commit –m "Some commit message"
$ git checkout master
$ git merge new-branch

om forfatteren

Denne artikkelen ble skrevet av Jacob Stopak, en programvarekonsulent og utvikler med lidenskap for å hjelpe andre med å forbedre livet deres gjennom kode. Jakob er skaperen av Innledende forpliktelse – et nettsted dedikert til å hjelpe nysgjerrige utviklere med å lære hvordan favorittprogrammene deres er kodet. Det omtalte prosjektet hjelper folk lær Git på kodenivå.

Tidstempel:

Mer fra Stackabuse