Kursusindhold
Github-Grundlæggende
Github-Grundlæggende
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 på 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.
Tak for dine kommentarer!