Nous avons maintenant pratiqué les bases de git -- commits, branches, et déplacements dans l'arbre des commits. Ces seuls concepts sont suffisants pour utiliser 90% du pouvoir des dépôts git et satisfaire les principaux besoins des développeurs.

Les 10% restants, cependant, peuvent être assez utiles pour les systèmes assez complexes (ou quand vous vous êtes mis tout seul dans le pétrin).

Le concept que nous allons aborder est "le déplacement de travail" (moving work around) -- en d'autres termes, c'est une façon pour les développeurs de dire "Je veux ce travail ici et cet autre là".

Cela peut sembler compliqué, mais c'est un concept simple.

La première commande que nous allons voir est git cherry-pick. Elle a la forme suivante:

git cherry-pick Commit1 Commit2 ...

C'est une manière simple de dire qu'on voudrait copier une série de commits en-dessous de notre emplacement actuel (HEAD). Personnellement, j'adore cherry-pick parce qu'il y a un petit peu de magie dedans, et parce que c'est facile à comprendre.

Faisons une démonstration !

Avant cherry-pick

Git avant cherry-pick bug fix


Ici le dépôt que nous avons contient du travail dans la branche side, que nous voulons copier dans master.

Cela pourrait être fait avec un rebase (que nous avons déjà appris), mais que faire si nous voulons seulement des commits spécifiques ?

Disons que nous ne voulons pas des changements apportés par C3.

Après cherry-pick

Git apres le cherry-pick bug fix


git cherry-pick C2 C4

C'est ça! Nous voulions des commits C2 et C4 et git les a déposés juste en dessous de nous. Aussi simple que cela!

Pour finir ce niveau, copiez simplement le travail désigné dans la branche master. Vous pouvez voir les commits que nous souhaitons avoir en regardant dans la fenêtre d'objectif.