Git
Chapters ▾ 2nd Edition

3.3 Branchen in Git - Branch-beheer

Branch-beheer

Nu heb je wat branches aangemaakt, gemerged, en verwijderd. Laten we eens kijken naar welke branch-beheer-toepassingen handig zijn als je vaker branches gaat gebruiken.

Het git branch commando doet meer dan alleen branches aanmaken en verwijderen. Als je het zonder argumenten uitvoert, dan krijg je een eenvoudige lijst van de huidige branches:

$ git branch
  iss53
* master
  testing

Merk op dat het * karakter vooraf gaat aan de master-branch: het geeft de branch aan die je op dit moment uitgecheckt hebt (d.i. de branch waar HEAD nu naar verwijst). Dit betekent dat als je op dit punt commit, de master-branch vooruit zal gaan met je nieuwe werk. Om de laatste commit op iedere branch te zien, kun je git branch -v uitvoeren:

$ git branch -v
  iss53   93b412c fix javascript issue
* master  7a98805 Merge branch 'iss53'
  testing 782fd34 add scott to the author list in the readmes

De handige --merged en --no-merged opties zijn beschikbaar om te zien welke branches al dan niet gemerged zijn in de branch waar je nu op zit. Om te zien welke branches al gemerged zijn in de branch waar je nu op zit, kan je git branch --merged draaien:

$ git branch --merged
  iss53
* master

Omdat je iss53 al eerder hebt gemerged, zie je het terug in je lijst. Branches op deze lijst zonder de * ervoor zijn over het algemeen zonder problemen te verwijderen met git branch -d; je hebt hun werk al in een andere branch zitten, dus je zult niets kwijtraken.

Om alle branches te zien die werk bevatten die je nog niet gemerged hebt, kan je git branch --no-merged draaien:

$ git branch --no-merged
  testing

Dit toont je andere branch. Omdat het werk bevat dat nog niet gemerged is, zal het verwijderen met git branch -d falen:

$ git branch -d testing
error: The branch 'testing' is not fully merged.
If you are sure you want to delete it, run 'git branch -D testing'.

Als je de branch echt wilt verwijderen en dat werk wilt verliezen, dan kun je het forceren met -D, zoals het behulpzame bericht je al meldt.

Tip

De bovenstaande opties --merged en --no-merged zullem, als je niet een commit of branchnaam als argument meegeeft, laten zien wat er respectievelijk wel of niet gemerged is in je huidige branch.

Je kunt altijd een extra argument meegeven om te vragen over de merge status van een andere branch zonder deze eerst uit te hoeven checken, als in, wat is er nog niet in de master-branch gemerged?

$ git checkout testing
$ git branch --no-merged master
  topicA
  featureB
scroll-to-top