Comment utiliser une branche Git

Git est un outil utilisé par les développeurs pour gérer le contrôle de version de leurs applications. Il est très populaire et utilisé par de nombreux projets importants tels que GNOME et d’autres. Il s’agit également d’une application assez efficace. L’une des fonctions les plus importantes de Git est le contrôle des branches de développement qui permettent d’améliorer la création d’un projet. C’est pourquoi, dans ce tutoriel, nous vous montrerons comment utiliser les branches Git. Tout projet, y compris ceux basés sur un VPS, bénéficiera certainement de cette formidable fonctionnalité.

Les branches Git nous aident à organiser plusieurs versions d’une application. Pour cette raison, il est très important de les utiliser. Ce tutoriel vous permettra d’améliorer vos connaissances de base sur Git.

C’est quoi une branche Git ?

L’utilisation des branches de développement de Git est un moyen assez efficace de travailler avec nos applications tout en suivant leurs versions. En général, une branche de développement est une bifurcation de l’état du code qui crée un nouveau chemin pour son évolution. Elle peut être parallèle à d’autres branches Git que vous pouvez générer. Comme nous pouvons le voir, il est possible d’incorporer de nouvelles fonctionnalités à notre code de manière ordonnée et précise.

L’utilisation des branches Git présente de multiples avantages. Cependant, nous souhaitons souligner les deux suivants :

  • Il est possible de développer de nouvelles fonctionnalités pour notre application sans entraver le développement dans la branche principale.
  • Avec les branches Git, il est possible de créer différentes branches de développement qui peuvent converger dans le même dépôt. Par exemple, une branche stable, une branche test et une branche instable.

Naturellement, chaque développeur pourra établir ses propres méthodes avec ses propres avantages en se basant sur l’expérience.

Comment utiliser une branche Git

N’oubliez pas d’accéder à votre serveur avec SSH avant de commencer ! Voici un tutoriel PuTTY pour vous aider !

Les utilisations des branches Git sont initialement simples comme vous le remarquerez dans les commandes des branches Git. Mais comme pour la plupart des choses, plus vous avez de branches, plus il peut être difficile de les gérer.

Dans un projet Git, nous pouvons visualiser toutes les branches en entrant la commande suivante dans la ligne de commande :

git branch

Si aucune branche n’est créée, il n’y aura pas de résultat dans le terminal. La création d’une branche est vraiment simple :

git branch [nouvelle_branche]

Ensuite, nous devons passer à la branche du développement nouvellement créée. Pour ce faire, nous allons exécuter la commande suivante :

git checkout [nouvelle_branche]

Le résultat nous informera que nous sommes passés à une nouvelle branche. Nous l’avons appelé test, donc :

Switched to branch ‘test’

Maintenant, dans cette nouvelle branche de développement, nous pouvons créer autant de modifications de code que nous le voulons sans avoir à changer quoi que ce soit dans la principale. Comme nous pouvons le voir, cela permet de garder le programme organisé pour les nouvelles inclusions de code.

Si nous exécutons la commande pour lister à nouveau les branches, nous verrons qu’une nouvelle branche est ajoutée.

git branch

Il y a quelque chose que nous devons garder à l’esprit si nous voulons créer une nouvelle branche de développement. Tout d’abord, nous devons nous engager dans la branche principale pour que Git comprenne ce qu’est la branche principale (master). Si nous ne le faisons pas, nous aurons une erreur. Donc, d’abord, commettez et ensuite créez les branches de développement.

Si nous voulons retirer une branche du Git, nous pouvons le faire avec la commande suivante :

git branch -d [nom_de_la_branche]

Cependant, pour ce faire, nous ne devons pas être situés dans la branche que nous voulons supprimer. Dans ce cas, nous devons donc nous déplacer vers la branche principale et, de là, supprimer la branche que nous venons de créer :

git checkout master
git branch -d test

Enfin, il arrive un moment où nous avons apporté de nombreuses modifications à une branche de développement. Elle devient stable, et nous voulons donc la relier à une autre branche de développement. Pour cela, il y a la commande merge.

Pour commencer, localisez la branche de développement à laquelle la deuxième branche doit être rattachée. Par exemple, nous allons attacher la branche test à la branche master. Ensuite, nous devons nous placer dans la branche master et fusionner avec la commande :

git merge [branche]

Comme vous pouvez le voir, les fonctions de base de la branche Git sont assez simples. Il vous suffit de connaître les principes de base et d’essayer de garder votre gestion propre.

Parfois, le processus ci-dessus n’est pas fluide. Si vous apportez des modifications différentes à la même partie du même fichier dans les deux branches que vous souhaitez fusionner, Git ne pourra pas effectuer la fusion correctement. Si votre correctif pour le problème n°53 modifie les mêmes parties du fichier que le correctif. Voici comment ça peut etre affiché :

Generic Highlighting
$ git merge iss53
Auto-merging index.html
CONFLICT (content): Merge conflict in index.html
Automatic merge failed; fix conflicts and then commit the result.

Git ne crée pas automatiquement de commits de fusion. Lorsque vous avez résolu le conflit, il a arrêté le processus. Si vous souhaitez vérifier à tout moment après le conflit, quels fichiers n’ont pas été fusionnés, vous pouvez exécuter la commande git status :

Generic Highlighting
$ git status
On branch master
You have unmerged paths.
  (fix conflicts and run "git commit")

Unmerged paths:
  (use "git add <file>..." to mark resolution)

    both modified:      index.html

no changes added to commit (use "git add" and/or "git commit -a")

Tout contenu non résolu qui contient des conflits est répertorié comme non fusionné. Git ajoute des indicateurs de résolution de conflit standard aux fichiers en conflit, vous pouvez donc les ouvrir manuellement et résoudre les conflits.

Generic Highlighting
<<<<<<< HEAD:index.html
<div id="footer">contact : email.support@github.com</div>
======
<div id="footer">
 please contact us at support@github.com
</div>
>>>>>>> iss53:index.html

Cela signifie que la version dans HEAD (votre branche principale, car c’est celle que vous avez extraite lorsque vous avez exécuté la commande de fusion) est le haut du bloc (que ce soit le contenu au-dessus de la ligne =======) , Et la version de votre branche iss53 est la suivante. Pour résoudre le conflit, vous devez choisir l’un ou l’autre ou fusionner vous-même son contenu. Par exemple, vous pouvez  résoudre ce conflit par le remplacement du bloc entier par ce qui suit :

Generic Highlighting
<div id="footer">
please contact us at email.support@github.com
</div>

La résolution a des éléments pour chaque partie, et les lignes <<<<<<<, ======= et >>>>>>> ont été complètement supprimées. Après avoir résolu chaque partie de chaque fichier en conflit, exécutez git add sur chaque fichier pour le marquer comme résolu. Mettez le fichier dans l’index pour marquer le conflit comme résolu par Git. Si vous souhaitez utiliser un outil graphique pour résoudre ces conflits, vous pouvez exécuter git mergetool qui lance l’outil de fusion graphique approprié et vous permet de parcourir les conflits :

<div class="listingblock">
<div class="content">
<pre class="highlight"><code class="language-console" data-lang="console">$ git mergetool

This message is displayed because 'merge.tool' is not configured.
See 'git mergetool --tool-help' or 'git help config' for more details.
'git mergetool' will now attempt to use one of the following tools:
opendiff kdiff3 tkdiff xxdiff meld tortoisemerge gvimdiff diffuse diffmerge ecmerge p4merge araxis bc3 codecompare vimdiff emerge
Merging:
index.html

Normal merge conflict for 'index.html':
  {local}: modified file
  {remote}: modified file
Hit return to start merge resolution tool (opendiff):</code></pre>
</div>
</div>

<div class="paragraph"> Si vous souhaitez utiliser un outil de fusion autre que l’outil par défaut (dans ce cas, Git a choisi opendiff car la commande est exécutée depuis un Mac), vous pouvez voir tous les outils pris en charge après avoir indiqué « les outils suivants&nbsp;: ». Entrez simplement le nom de l’outil que vous souhaitez utiliser.</div>

<div class="paragraph">Après avoir quitté l’outil de fusion, Git demandera si la fusion a réussi. Si vous répondez « oui » à l’outil, il ajoutera le fichier à l’index pour le marquer comme résolu. Vous pouvez réexécuter la commande git status pour vérifier que tous les conflits ont été résolus&nbsp;:</div>

<div>
<pre class="highlight"><code class="language-console" data-lang="console">$ git status
On branch master
All conflicts fixed but you are still merging.
  (use "git commit" to conclude merge)

Changes to be committed:

    modified:   index.html</code></pre>
</div>

Et en fin, si cette solution vous convient, il suffit d’entrer la commande git commit pour finaliser le commit de fusion. Et bien évidement, le message de validation par défaut ressemble à ceci :

Merge branch 'iss53'

Conflicts:
    index.html
#
# It looks like you may be committing a merge.
# If this is not correct, please remove the file
#	.git/MERGE_HEAD
# and try again.


# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
# On branch master
# All conflicts fixed but you are still merging.
#
# Changes to be committed:
#	modified:   index.html
#

Conclusion

Savoir utiliser les branches de développement devient vital pour développer nos applications de manière ordonnée. Soyez attentif à la façon dont vous organisez votre code dans les différentes branches Git.

Dans cet article, nous vous avons montré les bases du travail avec eux.

Comme toujours, il est conseillé de lire la documentation officielle de Git sur les branches pour comprendre comment les opérations complexes sont effectuées. Bon développement !

Author
L'auteur

Ismail

Ismail est un spécialiste du référencement et de la localisation chez Hostinger. Il est passionné par la technologie et le développement web et possède des années d'expérience dans le domaine informatique. Ses passe-temps incluent les jeux vidéo et le football.