Branches · oefening
Ga terug naar main
De commit met openingstijden staat veilig op add-opening-hours. Nu wil je het project bekijken zoals main het vastlegt, zonder je net gemaakte werk te verwijderen of te verplaatsen.
Controleer wat is opgeslagen
De vorige les liet één commit met openingstijden achter op add-opening-hours, zonder onvoltooide bewerkingen. Voer git status uit voordat je overschakelt. Meldt het een wijziging, bekijk die dan voordat je verdergaat. Deze oefening gaat uit van het opgeslagen bestand en de ene commit uit de vorige les. Gooi een extra bewerking alleen met git restore weg als je hebt besloten dat je haar niet wilt houden.
In je eigen projecten horen niet-gecommitte bewerkingen nog niet bij een branch. Git kan ze meenemen bij het overschakelen als ze niet botsen met de bestemming. Zou overschakelen ze overschrijven, dan weigert Git en noemt het de betrokken bestanden. Forceer het overschakelen niet. Commit werk dat je wilt bewaren op de branch waar het hoort, voordat je het opnieuw probeert. De schone beginsituatie van deze oefening maakt de bestandsverandering hieronder duidelijk.
Schakel over naar een bestaande branch
Eerder maakte git switch -c add-opening-hours een branch en schakelde ernaartoe over. De branch main bestaat al. Deze keer laat je -c dus weg en noem je de branch waarnaar je wilt overschakelen:
git switch main
Git verplaatst HEAD naar main en werkt de werkboom bij zodat die overeenkomt met de commit waar main naar wijst. De basiscommit heeft geen hours.txt, dus dat bestand verdwijnt uit de werkboom. Het is niet verloren: het blijft in de commit die je via add-opening-hours bereikt.
De opdracht ls toont de namen in de huidige map. Bekijk daarmee de werkboom en vraag Git daarna welke branch de huidige is:
ls
git branch
git status
ls toont README.md, maar geen hours.txt. git branch zonder opties zet * naast main en git status zegt dat de werkboom schoon is.
Overschakelen maakte geen commit ongedaan, kopieerde geen map en verplaatste main niet vooruit. Het veranderde welke bestaande branch HEAD volgt en liet de ene werkboom overeenkomen met de commit van die branch.
Add opening hours <- add-opening-hours
|
Clarify the guide title <- main (HEAD), clearer-title
|
Start the neighborhood guide
Voer je git switch add-opening-hours uit, dan komt hours.txt terug. Git laat de werkboom dan weer bij die branch passen. Probeer gerust heen en terug te gaan. Eindig wel op main: voer nogmaals git switch main uit voordat je je werk indient.
Waarom verdween hours.txt na git switch main?
Dat een bestand verschijnt en verdwijnt terwijl je overschakelt, is de eerste keer schrikken en daarna heel gewoon. Overschakelen is geen opslagactie en ook geen herstelbewerking. Git bouwt je werkboom opnieuw op voor een ander punt in de geschiedenis. Dat kan direct, omdat elk van die punten een volledige momentopname is die Git al heeft.
Er blijft nog één opruimklus over. De repository heeft nog een branchnaam die zijn taak heeft volbracht.