Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Udførelse af en Rebase-Operation | Mere Avancerede Workflows
Github-Grundlæggende
course content

Kursusindhold

Github-Grundlæggende

Github-Grundlæggende

1. Introduktion til GitHub
2. Grundlæggende Interaktion med Fjernlagre
3. Mere Avancerede Workflows

book
Udførelse af en Rebase-Operation

Rebase af ændringer til main-grenen

Før vi kan rebase vores ændringer, skal vi først skifte til main-grenen og hente de seneste ændringer:

Lad os nu se på commit-træet:

På nuværende tidspunkt har både main- og feature/payment-grenene commits efter den seneste fælles forfader. Dette indikerer, at en fast-forward-fletning ikke kan udføres.

Hvis vi flettede disse grene, ville der ske en trevejsfletning. Vi ønsker dog at holde vores historik lineær, så vi udfører en rebase af feature/payment-grenen main-grenen. Dette kan gøres ved at skifte til feature/payment-grenen og køre kommandoen git rebase:

Fast-forward-fletning

Da rebase-operationen er gennemført med succes, lad os tage et kig på vores commit-træ igen:

Som forventet er commit-historikken nu lineær med den seneste commit på feature/payment-grenen. Nu kan vi udføre en simpel fast-forward-fletning til main-grenen:

Lad os bekræfte, at begge grene peger på den samme commit ved at se på den seneste commit:

Fjernelse af feature-gren

main-grenen indeholder nu den seneste commit med betalingssystemet implementeret, så vi kan trygt fjerne både den lokale og den eksterne feature/payment-gren. Følgende kommando fjerner den eksterne gren:

Nu kan vi fjerne den lokale gren:

Til sidst kan alle de ændringer, vi har foretaget, sendes tilbage til det eksterne repository:

For at bekræfte, at feature-grenen blev slettet både lokalt og eksternt, kan du køre følgende kommando, som viser alle (-a står for alle) lokale og eksterne grene:

Som du kan se, blev feature/payment-grenen slettet med succes, og der er nu kun to grene: main og john/test med deres eksterne modparter.

Overordnet set fungerer rebase godt for lokale ændringer, der endnu ikke er blevet delt, men det kan give betydelige problemer for ændringer, der allerede er offentliggjort til et eksternt repository og muligvis downloadet af andre samarbejdspartnere. At rebase commits, som andre bruger, kan skabe forvirring og konflikter på grund af omskrivning af commit-historikken.

Som en generel regel bør du undgå at rebase ændringer, der er skubbet til eksterne repositories, for at forhindre disse problemer.

question mark

Efter at have rebased feature/payment oven på main, hvorfor udfører git merge feature/payment et fast-forward merge?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 3. Kapitel 5

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

course content

Kursusindhold

Github-Grundlæggende

Github-Grundlæggende

1. Introduktion til GitHub
2. Grundlæggende Interaktion med Fjernlagre
3. Mere Avancerede Workflows

book
Udførelse af en Rebase-Operation

Rebase af ændringer til main-grenen

Før vi kan rebase vores ændringer, skal vi først skifte til main-grenen og hente de seneste ændringer:

Lad os nu se på commit-træet:

På nuværende tidspunkt har både main- og feature/payment-grenene commits efter den seneste fælles forfader. Dette indikerer, at en fast-forward-fletning ikke kan udføres.

Hvis vi flettede disse grene, ville der ske en trevejsfletning. Vi ønsker dog at holde vores historik lineær, så vi udfører en rebase af feature/payment-grenen main-grenen. Dette kan gøres ved at skifte til feature/payment-grenen og køre kommandoen git rebase:

Fast-forward-fletning

Da rebase-operationen er gennemført med succes, lad os tage et kig på vores commit-træ igen:

Som forventet er commit-historikken nu lineær med den seneste commit på feature/payment-grenen. Nu kan vi udføre en simpel fast-forward-fletning til main-grenen:

Lad os bekræfte, at begge grene peger på den samme commit ved at se på den seneste commit:

Fjernelse af feature-gren

main-grenen indeholder nu den seneste commit med betalingssystemet implementeret, så vi kan trygt fjerne både den lokale og den eksterne feature/payment-gren. Følgende kommando fjerner den eksterne gren:

Nu kan vi fjerne den lokale gren:

Til sidst kan alle de ændringer, vi har foretaget, sendes tilbage til det eksterne repository:

For at bekræfte, at feature-grenen blev slettet både lokalt og eksternt, kan du køre følgende kommando, som viser alle (-a står for alle) lokale og eksterne grene:

Som du kan se, blev feature/payment-grenen slettet med succes, og der er nu kun to grene: main og john/test med deres eksterne modparter.

Overordnet set fungerer rebase godt for lokale ændringer, der endnu ikke er blevet delt, men det kan give betydelige problemer for ændringer, der allerede er offentliggjort til et eksternt repository og muligvis downloadet af andre samarbejdspartnere. At rebase commits, som andre bruger, kan skabe forvirring og konflikter på grund af omskrivning af commit-historikken.

Som en generel regel bør du undgå at rebase ændringer, der er skubbet til eksterne repositories, for at forhindre disse problemer.

question mark

Efter at have rebased feature/payment oven på main, hvorfor udfører git merge feature/payment et fast-forward merge?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 3. Kapitel 5
some-alt