Git 🌙
Chapters â–Ÿ 2nd Edition

A3.4 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.

scroll-to-top