Opnieuw baseren
Rebase
is het proces van het veranderen van de commit geschiedenis van een branch door commits van een andere branch toe te passen. In plaats van te gebruiken merge
om wijzigingen te combineren, rebase
kun je insert
nieuwe commits in de commit-geschiedenis van de huidige branch toevoegen zonder merge-commits te maken.
Stel dat u bijvoorbeeld twee branches heeft: feature-branch
en main
. Je werkt aan feature-branch
en wilt de laatste commits toepassen van main
op je huidige branch. U kunt rebase gebruiken om dit te bereiken:
git checkout feature-branch
git rebase main
Wanneer je dit commando uitvoert, zal Git de commits nemen van main
en toepassen op feature-branch
. Dit betekent dat alle commits op feature-branch
verschijnen na de commits van main
. Het resultaat is een schonere en beter leesbare commit-geschiedenis op feature-branch
.
Bij het gebruik van rebase is het echter belangrijk op te merken dat het wijzigen van de commit-geschiedenis van invloed kan zijn op openbaar gedeelde branches. Daarom, als je al commits van je huidige branch naar een remote repository gepusht hebt, is het over het algemeen aangeraden om geen rebase op die branch te gebruiken om conflicten en een rommelige commit geschiedenis te vermijden.
Branch
schakelen
Branch-switching in Git verwijst naar het proces van het verplaatsen van de ene branch naar de andere. Wanneer je van branch wisselt, verplaatst Git de HEAD-pointer naar de nieuwe branch, waardoor je aan die branch kunt werken en wijzigingen kunt aanbrengen zonder andere branches te beïnvloeden.
Stel dat u bijvoorbeeld branches feature-branch
en main
. Om over te schakelen naar feature-branch
, gebruikt u de volgende opdracht:
git checkout feature-branch
Nadat u van branche bent gewisseld, kunt u wijzigingen aanbrengen in de werkdirectory. Alle commit
, add
, en checkout
commando's zijn van toepassing op de huidige branch.
Als je bijvoorbeeld een nieuw bestand toevoegt en het vastlegt op feature-branch
, zal alleen die branch de vastlegging bevatten, terwijl het main
onaangetast blijft. Hierdoor kunt u afzonderlijke functies ontwikkelen, bugs oplossen of onafhankelijk aan verschillende versies van de code werken. U kunt wanneer nodig wisselen tussen branches om aan elke branch afzonderlijk te werken.