Créer une branche et fusionner vos modifications
Lorsque vous travaillez sur du code Bicep, il est courant de devoir effectuer plusieurs tâches à la fois. Voici, par exemple, deux scénarios pour travailler avec le site Web de votre société de jouets :
- L’équipe de développement de votre site Web souhaite obtenir de l’aide pour la mise à jour des fichiers Bicep avec des modifications significatives. Toutefois, l’équipe ne souhaite pas encore que ces modifications soient publiées. Vous devez être en mesure d’apporter des ajustements mineurs à la version actuelle du site Web en parallèle avec le travail sur la nouvelle version.
- Vous travaillez sur des modifications expérimentales qui, selon vous, vous aideront à améliorer les performances du site Web. Toutefois, ces modifications sont préliminaires. Vous ne souhaitez pas les appliquer à la version active du site Web tant que vous n’êtes pas prêt.
Dans cette unité, vous découvrez les branches Git.
Notes
Les commandes de cette unité sont présentées pour illustrer les concepts. N’exécutez pas encore les commandes. Vous allez bientôt mettre en pratique ce que vous apprenez ici.
Que sont les branches ?
Une branche permet d’avoir plusieurs copies actives de vos fichiers. Vous pouvez créer et basculer entre les branches chaque fois que vous le souhaitez. Lorsque vous avez terminé d’utiliser une branche, vous pouvez la fusionner avec une autre branche. Ou vous pouvez la supprimer, ce qui supprime toutes les modifications.
Il est courant d’utiliser des branches pour l’ensemble de votre travail. Souvent, vous désignez une branche comme branche principale qui représente la version correcte connue ou réelle de vos fichiers. Par Convention, cette branche est généralement appelée main. Vous pouvez créer autant de branches que nécessaire. Lorsque vos modifications sur une branche sont prêtes, vous fusionnez la branche dans la branche main.
Créer et extraire une branche
La création d’une branche est rapide et facile dans Git. Il existe plusieurs façons de le faire, mais la méthode la plus simple consiste généralement à utiliser la git checkout
commande. Voici un exemple de création d’une nouvelle branche appelée My-expérimental-changes :
git checkout -b my-experimental-changes
Cette commande effectue deux opérations : elle crée la branche My-expérimental-changes et extrait la branche qui vient d’être créée. Une extraction signifie que la copie des fichiers que vous voyez dans votre dossier reflète ce qui se trouve dans la branche. Si vous avez deux branches avec des ensembles différents de changements, le basculement d’une branche puis de l’autre vous permet de basculer les deux ensembles de changements.
Vous pouvez également basculer vers une branche existante à l’aide de la git checkout
commande. Dans cet exemple, vous allez extraire la branche main :
git checkout main
Notes
Vous devez normalement valider vos modifications avant de pouvoir extraire une autre branche. Git vous avertit si vous ne pouvez pas procéder à l’extraction.
Travailler sur une branche
Une fois que vous avez basculé vers une branche, vous validez les fichiers comme d’habitude. En fait, tout ce que vous avez effectué jusqu’à présent a été sur une branche. Vous travailliez sur la branche main, qui est la branche par défaut lorsque vous créez un nouveau référentiel.
Lorsque vous validez des modifications alors que vous avez extrait une branche, la validation est associée à la branche. Lorsque vous basculez vers une autre branche, vous ne verrez probablement pas la validation dans l'git log
historique tant que vous n’avez pas fusionné la branche.
Fusionner des branches
Les branches sont un excellent moyen de séparer votre travail en cours de la version actuelle de votre code Bicep. Toutefois, une fois que vous avez terminé d’apporter des modifications à vos fichiers sur une branche, vous souhaitez souvent fusionner les modifications dans votre branche main.
Lorsque vous travaillez sur une branche, vous pouvez fusionner les modifications d’une autre branche dans votre branche actuelle à l’aide de la git merge
commande.
Notes
Veillez à extraire la branche destination de la fusion (souvent appelée branche cible) avant de procéder à la fusion. N’oubliez pas que vous effectuez une fusion à partir d'une autre branche dans votre branche de travail actuelle.
Voici un exemple qui montre comment vous pouvez extraire la branche main, puis fusionner les modifications à partir de la branche My-expérimental-changes dans la branche main. Enfin, vous supprimez la branche My-expérimental-changes, car vous n’en avez plus besoin.
git checkout main
git merge my-experimental-changes
git branch -d my-experimental-changes
Conseil
Lorsque vous travaillez avec d’autres personnes, il est courant d’utiliser des requêtes de tirage pour fusionner vos modifications au lieu de fusionner directement des branches. Vous en apprendrez davantage plus loin sur la collaboration et les requêtes de tirage.
Conflits de fusion
Lorsque Git fusionne les modifications d’une branche à l’autre, il examine les fichiers qui ont été modifiés et tente de fusionner les modifications. Parfois, vous pouvez avoir apporté des modifications aux mêmes lignes de code sur deux branches différentes. Dans ces situations, Git ne peut pas choisir la version correcte du code et il créera donc à la place un conflit de fusion.
Nous n’abordons pas en détail les conflits de fusion dans ce module, mais vous devez savoir qu’il peut y en avoir. C’est encore plus courant quand vous collaborez avec d’autres personnes. Dans le résumé de ce module, nous fournissons un lien vers des informations supplémentaires sur la façon dont Git et Visual Studio Code vous aident à résoudre les conflits de fusion.
Flux de travail Git
Dans ce module, vous découvrez uniquement les notions de base des branches. Toutefois, les branches sont puissantes et offrent une grande flexibilité dans la façon dont vous travaillez. Par exemple, vous pouvez créer des branches à partir d’autres branches et fusionner une branche avec une autre branche. Vous pouvez utiliser des branches pour créer toutes sortes de flux de travail différents qui prennent en charge la manière dont vous et votre équipe aimez travailler.
Dans ce module, nous utilisons un flux de travail simple appelé développement basé sur le Trunk. Dans ce flux de travail, vous disposez d’une seule branche Trunk. Par exemple, nous utilisons main dans les exemples de cet article. Cette branche représente la version correcte connue de votre code. Vous créez des branches à partir de ce Trunk lorsque vous apportez des modifications ou effectuez des tâches.
Le développement basé sur le Trunk déconseille d’apporter des modifications directement sur la branche Trunk. Vous essayez de conserver d’autres branches pour une durée limitée, ce qui permet de réduire les conflits de fusion. Ensuite, vous fusionnez et supprimez ces branches au fur et à mesure que vous effectuez des tâches.
Il y a d’autres workflows courants dans les environnements d’équipe où vous pouvez contrôler la fréquence de publication des changements. Dans le résumé de ce module, nous vous proposons des liens vers des informations supplémentaires sur les flux de travail Git.