Git
Chapters ▾ 2nd Edition

A3.8 Appendix C: Git Commando’s - Patchen

Patchen

Een aantal commando’s in Git draaien om het concept van het zien van commits in termen van de wijzigingen die ze introduceren, alsof de commit reeks een reeks van patches is. Deze commando’s helpen je je branches op deze manier te beheren.

git cherry-pick

Het git cherry-pick commando wordt gebruikt om de wijziging die in een enkele Git commit zit te pakken en deze te herintroduceren als een nieuwe commit op de branch waar je op dat moment op zit. Dit kan behulpzaam zijn bij het selectief een of twee commits te nemen van een branch in plaats van de hele branch in te mergen, waarbij alle wijzigingen worden genomen.

Cherry picking wordt beschreven en gedemonstreerd in Rebasende en cherry pick workflows.

git rebase

Het git rebase commando is eigenlijk een geautomatiseerde cherry-pick. Het bepaald een reeks van commits en gaat deze dan een voor een in dezelfde volgorde elders cherry-picken.

Rebasen wordt in detail behandeld in Rebasen, inclusief het behandelen van de samenwerkings problematiek waar je mee te maken krijgt als je al publieke branches gaat rebasen.

We gebruiken het in de praktijk tijdens een voorbeeld van het splitsen van je historie in twee aparte repositores in Vervangen, waarbij we ook de --onto vlag gebruiken.

We behandelen het in een merge conflict geraken tijdens rebasen in Rerere.

We gebruiken het ook in een interactieve script modus met de -i optie in Meerdere commit berichten wijzigen.

git revert

Het git revert commando is feitelijk een omgekeerde git cherry-pick. Het maakt een nieuwe commit die de exacte tegenhanger van de wijziging die in de commit zit die je aanwijst toepast, en deze effectief ontdoet of terugdraait.

We gebruiken het in De commit terugdraaien om een merge commit terug te draaien.