Flette Grener
Forståelse av sammenslåing av grener
I Git er sammenslåing prosessen med å integrere endringer fra én gren inn i en annen. Den vanligste bruken er å slå sammen feature-grener inn i main-grenen (for eksempel main
eller master
). Dette sikrer at de nyeste funksjonene og feilrettingene blir innlemmet i hovedkodebasen.
Grunnleggende arbeidsflyt for sammenslåing
La oss først se på de to siste commitene. Husk at vi for øyeblikket er på feature/new-feature
-grenen.
Som du ser, er vår master
-gren én commit bak, men før vi slår sammen endringer, må vi bytte til grenen hvor vi ønsker å innlemme endringene. La oss bytte til master
-grenen og vise de to siste commitene på denne grenen:
Grenen master
ligger faktisk én commit bak feature-grenen, så la oss slå dem sammen. For å starte fletteprosessen, bør kommandoen git merge
brukes, og angi hvilken gren som skal flettes inn i nåværende gren. For eksempel, for å flette en feature-gren kalt feature/new-feature
inn i master
-grenen, skal følgende kommando kjøres:
Meldingen som vises etter at kommandoen er kjørt inneholder følgende: Fast-forward
, som angir at en fast-forward-fletting ble utført.
Vi skal diskutere de to typene flettinger senere i dette kapittelet, men før vi gjør det, la oss se på de to siste commitene:
Vi er fortsatt på master
-grenen, men denne grenen er nå oppdatert med vår feature-gren, og begge grenene peker til samme commit.
HEAD peker fortsatt til master
-grenen siden vi befant oss på denne grenen da vi utførte sammenslåingen.
Sammenslåingstyper
Faktisk finnes det to typer sammenslåingsoperasjoner i Git:
- fast-forward-sammenslåing;
- treveis-sammenslåing.
Fast-forward-sammenslåing
Den vi har utført er et eksempel på en fast-forward-sammenslåing, som nevnt i meldingen. Denne typen sammenslåing utføres hvis alle commitene til en gren vi står på (utsjekket gren) også er en del av sammenslåingsgrenen, noe som betyr at commit-historikken til disse grenene ikke har forgreininger. La oss se på følgende illustrasjon for å tydeliggjøre dette:
Med denne typen sammenslåing blir pekeren til den utsjekkede grenen ganske enkelt oppdatert til den siste commit-en.
Treveis sammenslåing
Hvis historikken til grenene derimot har divergerte, det vil si at det etter en felles commit har blitt gjort nye commit-er separat på hver gren, utføres en treveis sammenslåing.
Begrepet "treveis" refererer til tre versjoner som er involvert i sammenslåingen:
- versjonen til den siste felles forfaderen (commit);
- versjonen til siste commit i nåværende gren (HEAD);
- versjonen til siste commit i grenen som slås sammen.
Se illustrasjonen under for et eksempel på en slik sammenslåing:
Slik fungerer en treveis sammenslåing:
- Git identifiserer endringene som er gjort på hver av grenene etter siste felles forfader;
- Hvis hver gren har endringer i ulike filer eller ulike deler av samme fil, vil Git automatisk slå sammen endringene ved å kombinere dem i den resulterende commit-en;
- Ellers vil det oppstå en sammenslåingskonflikt.
Takk for tilbakemeldingene dine!
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår
Awesome!
Completion rate improved to 3.57
Flette Grener
Sveip for å vise menyen
Forståelse av sammenslåing av grener
I Git er sammenslåing prosessen med å integrere endringer fra én gren inn i en annen. Den vanligste bruken er å slå sammen feature-grener inn i main-grenen (for eksempel main
eller master
). Dette sikrer at de nyeste funksjonene og feilrettingene blir innlemmet i hovedkodebasen.
Grunnleggende arbeidsflyt for sammenslåing
La oss først se på de to siste commitene. Husk at vi for øyeblikket er på feature/new-feature
-grenen.
Som du ser, er vår master
-gren én commit bak, men før vi slår sammen endringer, må vi bytte til grenen hvor vi ønsker å innlemme endringene. La oss bytte til master
-grenen og vise de to siste commitene på denne grenen:
Grenen master
ligger faktisk én commit bak feature-grenen, så la oss slå dem sammen. For å starte fletteprosessen, bør kommandoen git merge
brukes, og angi hvilken gren som skal flettes inn i nåværende gren. For eksempel, for å flette en feature-gren kalt feature/new-feature
inn i master
-grenen, skal følgende kommando kjøres:
Meldingen som vises etter at kommandoen er kjørt inneholder følgende: Fast-forward
, som angir at en fast-forward-fletting ble utført.
Vi skal diskutere de to typene flettinger senere i dette kapittelet, men før vi gjør det, la oss se på de to siste commitene:
Vi er fortsatt på master
-grenen, men denne grenen er nå oppdatert med vår feature-gren, og begge grenene peker til samme commit.
HEAD peker fortsatt til master
-grenen siden vi befant oss på denne grenen da vi utførte sammenslåingen.
Sammenslåingstyper
Faktisk finnes det to typer sammenslåingsoperasjoner i Git:
- fast-forward-sammenslåing;
- treveis-sammenslåing.
Fast-forward-sammenslåing
Den vi har utført er et eksempel på en fast-forward-sammenslåing, som nevnt i meldingen. Denne typen sammenslåing utføres hvis alle commitene til en gren vi står på (utsjekket gren) også er en del av sammenslåingsgrenen, noe som betyr at commit-historikken til disse grenene ikke har forgreininger. La oss se på følgende illustrasjon for å tydeliggjøre dette:
Med denne typen sammenslåing blir pekeren til den utsjekkede grenen ganske enkelt oppdatert til den siste commit-en.
Treveis sammenslåing
Hvis historikken til grenene derimot har divergerte, det vil si at det etter en felles commit har blitt gjort nye commit-er separat på hver gren, utføres en treveis sammenslåing.
Begrepet "treveis" refererer til tre versjoner som er involvert i sammenslåingen:
- versjonen til den siste felles forfaderen (commit);
- versjonen til siste commit i nåværende gren (HEAD);
- versjonen til siste commit i grenen som slås sammen.
Se illustrasjonen under for et eksempel på en slik sammenslåing:
Slik fungerer en treveis sammenslåing:
- Git identifiserer endringene som er gjort på hver av grenene etter siste felles forfader;
- Hvis hver gren har endringer i ulike filer eller ulike deler av samme fil, vil Git automatisk slå sammen endringene ved å kombinere dem i den resulterende commit-en;
- Ellers vil det oppstå en sammenslåingskonflikt.
Takk for tilbakemeldingene dine!