Git Rebase og Branch skift

Rebase

Rebase er processen med at ændre commit-historikken for en filial ved at anvende commits fra en anden filial. I stedet for at bruge merge til at kombinere ændringer, rebase giver du dig mulighed for at insert nye commits i den nuværende branches commit-historik uden at oprette flette-commits.

Lad os f.eks. sige, at du har to grene: feature-branch og main. Du arbejder på feature-branch og ønsker at anvende de seneste tilsagn fra main din nuværende filial. Du kan bruge rebase til at opnå dette:

git checkout feature-branch  
git rebase main  

Når du kører denne kommando, vil Git tage commits fra main og anvende dem på feature-branch. Det betyder, at alle commits på feature-branch vises efter commits fra main. Resultatet er en renere og mere læsbar forpligtelseshistorik på feature-branch.

Men når du bruger rebase, er det vigtigt at bemærke, at ændring af forpligtelseshistorik kan påvirke offentligt delte filialer. Derfor, hvis du allerede har skubbet commits fra din nuværende gren til et fjernlager, anbefales det generelt ikke at bruge rebase på den gren for at undgå konflikter og en rodet commit-historik.

 

Branch Skifter

Branch switching i Git refererer til processen med at flytte fra en gren til en anden. Når du skifter gren, flytter Git HEAD-markøren til den nye gren, så du kan arbejde på den gren og lave ændringer uden at påvirke andre grene.

Lad os f.eks. sige, at du har filialer feature-branch og main. For at skifte til feature-branch skal du bruge følgende kommando:

git checkout feature-branch

Efter at have skiftet filial, kan du foretage ændringer i arbejdsbiblioteket. Alle commit, add, og checkout kommandoer vil gælde for den aktuelle gren.

For eksempel, hvis du tilføjer en ny fil og commit den på feature-branch, vil kun den gren indeholde commit, mens den main forbliver upåvirket. Dette giver dig mulighed for at udvikle separate funktioner, rette fejl eller arbejde på forskellige versioner af koden uafhængigt. Du kan skifte mellem grenene, når det er nødvendigt for at arbejde på hver gren separat.