Git vertakkingen maken
Dit komt neer op het maken van een "veilige" kopie van je project. Maar je hebt nu de extra mogelijkheid om te werken aan meerdere versies terzelfder tijd. Takken maken een niet-lineaire workflow mogelijk, de mogelijkheid om van elkaar onafhankelijke functionaliteiten parallel te ontwikkelen.
Vertakkingen tonen
Je moet de bestaande vertakkingen kunnen oplijsten. Dat doe je met:
git branch
Dit commando toont alle bestaande 'branches', met een sterretje er naast als die momenteel "uitgecheckt" is (daarover later meer):
* master dit-of-dat-kenmerk quick-bug-fix
De master branch is de Git standaard tak, die is gemaakt door de eerste commit in een repository. Veel ontwikkelaars gebruiken deze tak als de "belangrijkste" geschiedenis van het
project. Als een permanente tak die elke grote verandering in het verloop van het project bevat.
Vertakkingen maken
Je kan een nieuwe tak maken door een naam voor de tak aan het git branch commando mee te geven:
git branch <name>
Dit creëert een verwijzing naar het huidige HEAD, maar schakelt niet over naar de nieuwe tak. Daarvoor het je een git checkout nodig. Direct na het maken van een nieuw
tak, ziet je repository er ongeveer als volgt uit:
De huidige tak (master) en de nieuwe tak (nieuwe-functionaliteit) verwijzen naar dezelfde commit. Maar alle nieuwe commits die je daarna uitvoert zullen exclusief van de huidige tak zijn. Dit laat je toe op onafhankelijke functionaliteiten tegerlijkertijd te werken met behoud zinvolle geschiedenissen. Bijvoorbeeld, als je huidige tak nieuwe-functionaliteit is, ziet je geschiedenis er na een commit als volgt uit:
De nieuwe HEAD (aangeduid door de gemarkeerde commit in het geel) bestaat alleen in de nieuwe-functionaliteit tak. Die zal niet te zien in de log output van de master tak. De veranderingen verschijnen ook niet in de werkmap nadat je uit de master uitcheckt.
Je kan de nieuwe tak in de interne database zien door het openen van het bestand.git/refs/heads/<name>. Het bestand bevat de ID van de commit, en het is de enige definitie van een Git branch. Dit is de reden waarom takken zo eenvoudig te beheren zijn.
Takken deleten
Ten slotte kan je takken met de -d vlag te verwijderen:
git branch -d <name>
Maar, Git's toewijding om je werk nooit te verliezen voorkomt dat takken met niet samengevoegde commits verwijred worden. Om het verwijderen te forceren, gebruik je de -D vlag:
git branch -D <name>
Niet samengevoegde wijzigingen zullen dan verloren gaan, wees dus heel voorzichtig met deze opdracht
Je kan ook een nieuwe naam aan de vertakking geven:
git branch -m <branch>