Git
Chapters ▾ 2nd Edition

A3.4 Appendix C: Commandes Git - Création de branches et fusion

Création de branches et fusion

Il y a une poignée seulement de commandes qui implémentent la plupart des fonctionnalités de branche et de fusion dans Git.

git branch

La commande git branch est en fait une sorte d’outil de gestion de branche. Elle peut lister les branches que vous avez, créer une nouvelle branche, supprimer des branches et renommer des branches.

La plus grande partie de Les branches avec Git est dédiée à la commande branch et elle est utilisée tout au long du chapitre. Nous la présentons d’abord dans Créer une nouvelle branche et nous explorons la plupart de ses autres fonctionnalités (listage et suppression) dans Gestion des branches.

Dans Suivre les branches, nous utilisons l’option git branch -u pour définir une branche de suivi.

Enfin, nous explorons une partie de ce qu’elle fait en arrière-plan dans Références Git.

git checkout

La commande git checkout est utilisée pour passer d’une branche à l’autre et en extraire le contenu dans votre répertoire de travail.

Nous rencontrons cette commande pour la première fois dans Basculer entre les branches avec la commande git branch.

Nous voyons comment l’utiliser pour commencer à suivre des branches avec l’option --track dans Suivre les branches.

Nous nous en servons pour réintroduire des conflits de fichiers avec --conflict=diff3 dans Examiner les conflits.

Nous allons plus en détail sur sa relation avec git reset dans Reset démystifié.

Enfin, nous voyons quelques détails d’implémentation dans La branche HEAD.

git merge

L’outil git merge est utilisé pour fusionner une ou plusieurs branches dans la branche que vous avez extraite. Il avancera donc la branche courante au résultat de la fusion.

La commande git merge est d’abord présentée dans Branches. Bien qu’elle soit utilisée à plusieurs endroits du livre, il n’y a que peu de variations de la commande merge — généralement juste git merge <branche> avec le nom de la seule branche que vous voulez fusionner.

Nous avons couvert comment faire une fusion écrasée (dans laquelle Git fusionne le travail mais fait comme si c’était juste un nouveau commit sans enregistrer l’historique de la branche dans laquelle vous fusionnez) à la toute fin de Projet public dupliqué.

Nous avons exploré une grande partie du processus de fusion et de la commande, y compris la commande -Xignore-all-whitespace et l’option --abort pour abandonner un problème du fusion dans Fusion avancée.

Nous avons appris à vérifier les signatures avant de fusionner si votre projet utilise la signature GPG dans Signer des commits.

Enfin, nous avons appris la fusion de sous-arbre dans Subtree Merging.

git mergetool

La commande git mergetool se contente de lancer un assistant de fusion externe dans le cas où vous rencontrez des problèmes de fusion dans Git.

Nous la mentionnons rapidement dans Conflits de fusions (Merge conflicts) et détaillons comment implémenter votre propre outil externe dans Outils externes de fusion et de différence.

git log

La commande git log est utilisée pour montrer l’historique enregistré atteignable d’un projet en partant du commit le plus récent. Par défaut, elle vous montrera seulement l’historique de la branche sur laquelle vous vous trouvez, mais elle accepte des branches ou sommets différents ou même multiples comme points de départ de parcours. Elle est aussi assez souvent utilisée pour montrer les différences entre deux ou plusieurs branches au niveau commit.

Cette commande est utilisée dans presque tous les chapitres du livre pour exposer l’historique d’un projet.

Nous présentons la commande et la parcourons plus en détail dans Visualiser l’historique des validations. Là nous regardons les options -p et --stat pour avoir une idée de ce qui a été introduit dans chaque commit et les options --pretty et --oneline pour voir l’historique de manière plus concise, avec quelques options simples de filtre de date et d’auteur.

Dans Créer une nouvelle branche, nous l’utilisons avec l’option --decorate pour visualiser facilement où se trouvent nos pointeurs de branche et nous utilisons aussi l’option --graph pour voir à quoi ressemblent les historiques divergents.

Dans Cas d’une petite équipe privée et Plages de commits, nous couvrons la syntaxe brancheA..brancheB que nous utilisons avec la commande git log pour voir quels commits sont propres à une branche relativement à une autre branche. Dans Plages de commits, nous explorons cela de manière assez détaillée.

Dans Journal de fusion et Triple point, nous couvrons l’utilisation du format brancheA...brancheB et de la syntaxe --left-right pour voir ce qui est dans une branche ou l’autre mais pas dans les deux à la fois. Dans Journal de fusion, nous voyons aussi comment utiliser l’option --merge comme aide au débogage de conflit de fusion tout comme l’utilisation de l’option --cc pour regarder les conflits de commits de fusion dans votre historique.

Dans Raccourcis RefLog, nous utilisons l’option -g pour voir le reflog Git à travers cet outil au lieu de faire le parcours de la branche.

Dans Recherche, nous voyons l’utilisation des options -S et -L pour faire des recherches assez sophistiquées sur quelque chose qui s’est passé historiquement dans le code comme voir l’historique d’une fonction.

Dans Signer des commits, nous voyons comment utiliser --show-signature pour ajouter un message de validation pour chaque commit dans la sortie de git log basé sur le fait qu’il ait ou qu’il n’ait pas une signature valide.

git stash

La commande git stash est utilisée pour remiser temporairement du travail non validé afin d’obtenir un répertoire de travail propre sans avoir à valider du travail non terminé dans une branche.

Elle est entièrement décrite simplement dans Remisage et nettoyage.

git tag

La commande git tag est utilisée pour placer un signet permanent à un point spécifique de l’historique du code. C’est généralement utilisé pour marquer des choses comme des publications.

Cette commande est présentée et couverte en détail dans Étiquetage et nous la mettons en pratique dans Étiquetage de vos publications.

Nous couvrons aussi comment créer une étiquette signée avec l’option -s et en vérifier une avec l’option -v dans Signer votre travail.