Git Rebase och Branch byte

Ombas

Rebase är processen att ändra en grens commithistorik genom att tillämpa commits från en annan gren. Istället för att använda merge för att kombinera ändringar, rebase låter dig insert nya commits till den nuvarande grenens commit-historik utan att skapa merge commits.

Låt oss till exempel säga att du har två grenar: feature-branch och main. Du arbetar med feature-branch och vill tillämpa de senaste commits från main din nuvarande filial. Du kan använda rebase för att uppnå detta:

git checkout feature-branch  
git rebase main  

När du kör det här kommandot kommer Git att ta commits från main och tillämpa dem på feature-branch. Det betyder att alla commits på feature-branch kommer att visas efter commits från main. Resultatet är en renare och mer läsbar logghistorik på feature-branch.

Men när du använder rebase är det viktigt att notera att ändring av commit-historik kan påverka offentligt delade grenar. Därför, om du redan har pushat commits från din nuvarande gren till ett fjärrlager, rekommenderas det i allmänhet att inte använda rebase på den grenen för att undvika konflikter och en rörig commit-historik.

 

Branch Växlande

Grenbyte i Git hänvisar till processen att flytta från en gren till en annan. När du byter gren flyttar Git HEAD-pekaren till den nya grenen, så att du kan arbeta på den grenen och göra ändringar utan att påverka andra grenar.

Låt oss till exempel säga att du har grenar feature-branch och main. För att byta till feature-branch använder du följande kommando:

git checkout feature-branch

Efter att ha bytt gren kan du göra ändringar i arbetskatalogen. Alla commit, add, och checkout kommandon kommer att gälla för den aktuella grenen.

Till exempel, om du lägger till en ny fil och commit den på feature-branch, kommer bara den grenen att innehålla commit, medan den main förblir opåverkad. Detta gör att du kan utveckla separata funktioner, fixa buggar eller arbeta med olika versioner av koden oberoende. Du kan växla mellan grenar när det behövs för att arbeta på varje gren separat.