Git: Merge Branch into Master

Hurtigt svar – flet gren til master

Hvis du leder efter et hurtigt svar, at flette en gren ind i master gren – dig checkout master , 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 altid checkout grenen du flettes ind i, og merge en filial, der allerede har ændringer.

Forstå grensammenlægning med Git

Hvis du er nyere til Git, er det dog værd at bruge et par minutter på at forstå disse kommandoer, og hvordan de virker. Det er overraskende enkelt og vil tage dig langt.

Bemærk: I 2020 vedtog Git (sammen med større depot-hostingplatforme som GitHub, GitLab osv.) en ændring i den officielle terminologi, og standard filialnavnet blev ændret til main, på grund af de negative konotationer ordet master kan medføre. Mange projekter er ikke migreret eller omdøbt deres hovedgrene, så i en overskuelig fremtid – vilkårene master , main vil sandsynligvis blive brugt i flæng.

En af Gits mest kraftfulde funktioner er evnen til nemt at oprette og flette grene og ændringer til kodebasen.

Gits distribuerede natur tilskynder brugerne til ofte at oprette nye filialer og flette dem regelmæssigt som en del af udviklingsprocessen – og visse Git-arbejdsgange udnytter dette i vid udstrækning.

Dette forbedrer fundamentalt udviklingsworkflowet for de fleste projekter ved at tilskynde til mindre, mere fokuserede, granulære tilsagn, underlagt streng peer review.

I arv Versionsstyringssystemer (som CVS) begrænsede vanskeligheden ved at fusionere det til avancerede brugere. Andre moderne, men centraliserede versionskontrolsystemer som Subversion kræver, at der foretages commits til et centralt lager, så en smidig arbejdsgang med lokal forgrening og sammensmeltning er atypisk.

En almindeligt brugt forgreningsarbejdsgang i Git er at oprette en ny kodegren for hver ny funktion, fejlrettelse eller forbedring.

Disse kaldes Funktionsgrene.

Hver gren opdeler de tilsagn, der er relateret til en bestemt funktion. Når den nye funktion er færdig – dvs. et sæt ændringer er blevet foretaget på featuregrenen – er den klar til at blive flettet tilbage til mastergrenen (eller anden hovedkodelinjegren afhængigt af den anvendte arbejdsgang).

Bemærk: Funktionsforgrening er ikke det kun forgrenende arbejdsgang, du kan gå med, men det er en bredt udbredt arbejdsgang og aktiveres af enkelheden i Gits sammensmeltningsfunktioner.

Flet gren til en anden med Git

git branch kommandoen bruges til at liste alle eksisterende grene i et lager. Der vises en stjerne ved siden af ​​den aktive gren:

$ git branch
* master

For at oprette en ny filial kan vi bruge git branch new-branch kommando. Dette vil oprette en ny gren, der afspejler commits på den aktuelt aktive gren:

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

Bemærk: Bag kulisserne, Git ikke faktisk oprette et nyt sæt commits til at repræsentere den nye gren. En filial er som et tag, og commits er det delt. Du er forgrener sig et nyt sæt ændringer fra hovedgrenen. Når en featuregren er færdig og flettet ind i hovedgrenen, bliver ændringerne i den hovedgrenen, indtil du flette en ny featuregren ind i hovedgrenen.

På dette tidspunkt har vi oprettet en ny filial, men er stadig placeret på kildegrenen. For at begynde at arbejde på den nye gren skal vi først køre kommandoen git checkout new-branch. Dette vil ændre den aktive gren til den nye gren:

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

På dette tidspunkt kan der foretages commits på den nye filial for at implementere den nye funktion. Når funktionen er færdig, kan grenen flettes tilbage til hovedkodegrenen.

Først løber vi git checkout master for at ændre den aktive gren tilbage til master afdeling. Så kører vi kommandoen git merge new-branch til flette den nye funktion ind i masteren afdeling.

Bemærk: git merge flettes den angivne gren ind i den aktuelt aktive gren. Så vi skal være på den gren, som vi er smelter sammen i.

Hvis du flette en ny funktion ind i hovedgrenen, vil du først skifte til hovedgrenen og derefter flette ind i den:

# ...develop some code...

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

Tjek vores praktiske, praktiske guide til at lære Git, med bedste praksis, brancheaccepterede standarder og inkluderet snydeark. Stop med at google Git-kommandoer og faktisk lærer det!

Hvis alt går godt, er vores arbejde gjort. De nye feature-commits vises nu i hovedgrenen. Det er dog muligt, at Git ikke vil være i stand til at fuldføre sammenfletningen på grund af en konfliktændring i kildegrenen. Dette kaldes en fusionere konflikt.

For at opsummere, her er kommandoerne til at oprette en ny gren, foretage nogle commits og flette den tilbage 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 artikel er skrevet af Jacob Stopak, en softwarekonsulent og udvikler med passion for at hjælpe andre med at forbedre deres liv gennem kode. Jacob er skaberen af Indledende forpligtelse – et websted dedikeret til at hjælpe nysgerrige udviklere med at lære, hvordan deres yndlingsprogrammer er kodet. Dets fremhævede projekt hjælper folk lær Git på kodeniveau.

Tidsstempel:

Mere fra Stablemisbrug