Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Utføre en Rebase-operasjon | Mer Avanserte Arbeidsflyter
GitHub-Grunnleggende
course content

Kursinnhold

GitHub-Grunnleggende

GitHub-Grunnleggende

1. Introduksjon til GitHub
2. Grunnleggende Samhandling med Eksterne Lagre
3. Mer Avanserte Arbeidsflyter

book
Utføre en Rebase-operasjon

Rebaser endringer på main-grenen

Før vi kan rebase endringene våre, må vi først bytte til main-grenen og hente de siste endringene:

La oss nå se på commit-treet:

Per nå har både main- og feature/payment-grenene commits etter den siste felles forfaderen. Dette indikerer at en fast-forward-fusjon ikke kan utføres.

Hvis vi skulle slått sammen disse grenene, ville en treveis-fusjon skjedd. Vi ønsker imidlertid å holde historikken lineær, så vi skal utføre en rebase av feature/payment-grenen main-grenen. Dette kan gjøres ved å bytte til feature/payment-grenen og kjøre git rebase-kommandoen:

Fast-forward-fletting

Siden rebasen var vellykket, la oss se på commit-treet vårt igjen:

Som forventet er commit-historikken nå lineær med den siste commiten på feature/payment-grenen. Nå kan vi utføre en enkel fast-forward-fletting til main-grenen:

La oss kontrollere at begge grenene peker til samme commit ved å se på den siste commiten:

Fjerne funksjonsgrenen

main-grenen inneholder nå den siste commiten med betalingssystemet implementert, så vi kan trygt fjerne både den lokale og eksterne feature/payment-grenen. Følgende kommando fjerner den eksterne grenen:

Nå kan vi fjerne den lokale grenen:

Til slutt kan alle endringene vi har gjort pushes tilbake til det eksterne depotet:

For å bekrefte at feature-grenen ble slettet både lokalt og eksternt, kan du kjøre følgende kommando, som viser alle (-a står for alle) lokale og eksterne grener:

Som du ser, ble feature/payment-grenen slettet med hell, og det er nå kun to grener: main og john/test med sine eksterne motparter.

Generelt fungerer rebase godt for lokale endringer som ennå ikke er delt, men det kan føre til betydelige problemer for endringer som allerede er publisert til et eksternt repository og muligens lastet ned av andre samarbeidspartnere. Å rebase commits som andre bruker kan skape forvirring og konflikter på grunn av omskriving av commit-historikken.

Som en tommelfingerregel bør du unngå å rebase endringer som er pushet til eksterne repositories for å forhindre disse problemene.

question mark

Etter å ha rebased feature/paymentmain, hvorfor utfører git merge feature/payment en fast-forward-merge?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 3. Kapittel 5

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

course content

Kursinnhold

GitHub-Grunnleggende

GitHub-Grunnleggende

1. Introduksjon til GitHub
2. Grunnleggende Samhandling med Eksterne Lagre
3. Mer Avanserte Arbeidsflyter

book
Utføre en Rebase-operasjon

Rebaser endringer på main-grenen

Før vi kan rebase endringene våre, må vi først bytte til main-grenen og hente de siste endringene:

La oss nå se på commit-treet:

Per nå har både main- og feature/payment-grenene commits etter den siste felles forfaderen. Dette indikerer at en fast-forward-fusjon ikke kan utføres.

Hvis vi skulle slått sammen disse grenene, ville en treveis-fusjon skjedd. Vi ønsker imidlertid å holde historikken lineær, så vi skal utføre en rebase av feature/payment-grenen main-grenen. Dette kan gjøres ved å bytte til feature/payment-grenen og kjøre git rebase-kommandoen:

Fast-forward-fletting

Siden rebasen var vellykket, la oss se på commit-treet vårt igjen:

Som forventet er commit-historikken nå lineær med den siste commiten på feature/payment-grenen. Nå kan vi utføre en enkel fast-forward-fletting til main-grenen:

La oss kontrollere at begge grenene peker til samme commit ved å se på den siste commiten:

Fjerne funksjonsgrenen

main-grenen inneholder nå den siste commiten med betalingssystemet implementert, så vi kan trygt fjerne både den lokale og eksterne feature/payment-grenen. Følgende kommando fjerner den eksterne grenen:

Nå kan vi fjerne den lokale grenen:

Til slutt kan alle endringene vi har gjort pushes tilbake til det eksterne depotet:

For å bekrefte at feature-grenen ble slettet både lokalt og eksternt, kan du kjøre følgende kommando, som viser alle (-a står for alle) lokale og eksterne grener:

Som du ser, ble feature/payment-grenen slettet med hell, og det er nå kun to grener: main og john/test med sine eksterne motparter.

Generelt fungerer rebase godt for lokale endringer som ennå ikke er delt, men det kan føre til betydelige problemer for endringer som allerede er publisert til et eksternt repository og muligens lastet ned av andre samarbeidspartnere. Å rebase commits som andre bruker kan skape forvirring og konflikter på grunn av omskriving av commit-historikken.

Som en tommelfingerregel bør du unngå å rebase endringer som er pushet til eksterne repositories for å forhindre disse problemene.

question mark

Etter å ha rebased feature/paymentmain, hvorfor utfører git merge feature/payment en fast-forward-merge?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 3. Kapittel 5
some-alt