Git Fusion Simplifié : Fusionner les Branches Comme un Pro

La fusion des branches dans Git peut parfois être une tâche intimidante, mais la commande git merge simplifie considérablement le processus. Dans ce tutoriel, vous apprendrez les bases de la combinaison des branches en utilisant git merge, associé à GitHub, un outil de gestion de projet de premier plan.

Commençons ce voyage dans le monde de Git et GitHub, en nous concentrant sur la puissante commande git merge.

Prérequis pour maîtriser Git Merge

Avant de plonger dans les subtilités de git merge, assurez-vous d’avoir la configuration suivante :

  • Git (Version 2.25.1 utilisée dans ce tutoriel) – Téléchargez à partir du site officiel de Git.
  • A GitHub account – Sign up at GitHub.
  • Une machine Ubuntu (Ubuntu 20.04 est utilisé ici, mais tout système d’exploitation avec Git suffira).

Initialisation d’un projet pour Git Merge

Pour utiliser efficacement git merge, vous avez d’abord besoin d’un projet Git. Configurons un projet de démonstration pour la pratique.

1. Commencez par créer un nouveau répertoire nommé ~/git-demo et naviguez-y :

mkdir git-demo && cd git-demo

2. Créez un fichier index.html dans le répertoire ~/git-demo avec le contenu suivant. Ce fichier HTML de base affiche un message sur le démarrage avec git merge.

<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Git Merge Demo</title>
</head>
<body>
    <h4>Let's get started with git merge</h4>
</body>
</html>

3. Initialisez un nouveau dépôt Git dans votre répertoire de projet :

Le git init commande est utilisée pour convertir un projet existant non versionné en un dépôt Git ou pour démarrer un nouveau projet avec Git.

git init
Initializing a Git repository for git merge

4. Confirmez la création du dossier .git dans votre répertoire de projet. C’est là que Git suit les modifications :

ls -la
Verifying the existence of the GIT repository in the directory.

5. Mettez en œuvre la commande git add pour mettre en scène vos modifications dans le projet. En mettant en scène le fichier index.html, vous le préparez pour le prochain commit dans le flux de travail Git.

git add index.html

6. Utilisez git status pour confirmer que votre fichier est correctement mis en scène. Cette commande fournit un instantané de l’état actuel de votre répertoire de travail.

git status
Confirming the staging of changes for git merge.

7. Ensuite, validez vos modifications en utilisant git commit. Cette commande enregistre vos modifications mises en scène dans le dépôt local, marquant une étape importante dans votre historique des versions.

git commit -m "initial commit"
Executing the initial commit in preparation for git merge.

Définissez votre identité Git avec : git config --global user.email "[email protected]" et git config --global user.name "Votre Nom" si vous utilisez Git pour la première fois.

8. Passez en revue votre historique de commits avec git log. Cette commande vous aide à suivre les modifications et est vitale lorsque vous vous préparez à une git merge.

git log
Checking commit history before performing git merge.

9. Confirmez l’existence de branches dans votre dépôt avec git branch. Cette étape est cruciale avant d’effectuer un git merge.

Note : La branche par défaut est nommée ‘main’ dans les versions récentes de Git, remplaçant ‘master’.

git branch
Listing all branches in preparation for git merge.

Créer une branche pour Git Merge

Avec votre configuration initiale de Git terminée et le premier commit effectué, il est temps de créer une nouvelle branche. Cette branche sera utilisée pour démontrer efficacement le processus de fusion avec git merge.

1. Mettez à jour le fichier index.html avec un nouveau contenu pour démontrer les changements dans votre branche. Cette version inclut des champs de saisie utilisateur, se préparant à une démonstration de git merge.

<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Git Merge Demo</title>
</head>
<body>
    <h4>Enhancing Git Merge Skills</h4>
    <form action="">
      <input type="text" name="username" placeholder="Username" />
      <input type="password" name="password" placeholder="Password" />
    </form>
</body>
</html>

2. Vérifiez l’état de votre dépôt avec git status pour voir les modifications dans index.html. Il devrait indiquer que le fichier est modifié et non mis en scène, prêt pour les prochaines étapes dans le processus de git merge.

Inspecting repository changes for git merge.

3. Créez une nouvelle branche nommée « form » avec git checkout -b form. Cette commande crée non seulement la nouvelle branche, mais bascule également votre branche de travail sur « form », essentiel pour mettre en œuvre git merge.

git checkout -b form
Creating a new branch for git merge.

4. Confirmez la création de la nouvelle branche en exécutant git branch. Vous devriez maintenant voir les branches « form » et « master », avec « form » comme branche active indiquée par un astérisque (*).

git branch
Confirming the active ‘form’ branch for git merge.

5. Mettez en scène et commitez vos modifications sur la branche form. Cette action garantit que la branche form reflète les mises à jour récentes apportées au fichier index.html, préparant le terrain pour un git merge efficace.

## Mettre en scène le fichier mis à jour
git add index.html

## Valider les nouvelles modifications
git commit -m "Added user input fields to form"
Committing updated index.html to the ‘form’ branch for git merge.

Fusion de branches locales avec Git Merge

Maintenant que vous avez des branches distinctes dans votre dépôt GitHub, la prochaine étape consiste à les fusionner. Cette section porte sur la fusion des branches localement en utilisant la commande git merge, une opération Git fondamentale.

1. Pour commencer la fusion, passez à la branche master, qui recevra les mises à jour de la branche form:

git checkout master

2. Une fois sur la branche master, exécutez git merge form pour combiner les modifications de la branche form dans master. C’est une étape cruciale dans le processus de git merge.

git merge form
Successfully merging branches using git merge.

3. Confirmez la fusion en vous assurant d’être sur la branche master et en vérifiant que le contenu de index.html a été mis à jour.

# Confirmer la branche actuelle
git branch
# Vérifier le contenu fusionné
cat index.html
Reviewing index.html content post git merge.

Optimisation avec Git Squash

Le squashing en Git est une technique utilisée pour nettoyer l’historique des commits. Lorsque vous avez plusieurs messages de commit qui ne sont pas nécessaires individuellement, le squashing vous permet de les combiner en un seul commit complet. Cette pratique est particulièrement utile lors de la préparation d’une git merge.

Explorons le processus de squashing en apportant d’autres modifications au fichier index.html sur la branche form, puis en écrasant ces modifications.

1. Revenez à la branche form pour apporter des modifications supplémentaires :

git checkout form

2. Modifiez le fichier index.html en ajoutant un en-tête de formulaire. Cette étape créera une modification que nous écraserons plus tard lors de la fusion :

<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <h4>Mastering Git Merge with Form Updates</h4>
    <form action="">
      <h4>Account Details</h4>
      <input type="text" name="username" placeholder="Username" />
      <input type="password" name="password" placeholder="Password" />
      <button>Submit</button>
    </form>
</body>
</html>

3. Mettez en scène et validez les modifications avec un message clair décrivant la mise à jour :

git add index.html
git commit -m "Enhanced form with a header for git merge"
Staging and committing changes for squashing in git merge.

4. Améliorez le fichier index.html dans la branche form en ajoutant un nouveau champ d’entrée. Cette modification fait partie de la préparation pour une fusion efficace avec git merge.

<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Git Merge Example</title>
</head>
<body>
    <h4>Practicing Git Merge</h4>
    <form action="">
      <h4>Enter account details</h4>
      <input type="text" name="fullname" placeholder="Full Name" />
      <input type="text" name="username" placeholder="Username" />
      <input type="password" name="password" placeholder="Password" />
      <button>Submit</button>
    </form>
</body>
</html>

5. Mettez en scène et validez ces modifications avec un message distinct, en veillant à ce que chaque étape de votre travail soit clairement documentée pour la prochaine fusion avec git merge.

git add index.html
git commit -m "Enhanced form with an additional input field"
Adding another input field to index.html for git merge.

6. Ensuite, insérez un élément de paragraphe sous le formulaire dans index.html, modifiant davantage le fichier en préparation pour une fusion avec git merge.

<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Git Merge Practice</title>
</head>
<body>
    <h4>Let's get started with git merge</h4>
    <form action="">
      <h4>Enter account details</h4>
      <input type="text" name="fullname" placeholder="Full Name" />
      <input type="text" name="username" placeholder="Username" />
      <input type="password" name="password" placeholder="Password" />
      <button>Submit</button>
    </form>
    <p>Already a user?</p>
</body>
</html>

7. Encore une fois, mettez en scène et validez les modifications, en utilisant un message qui capture l’essence de cette mise à jour, essentielle pour le processus de fusion avec git merge.

git add index.html
git commit -m "Added user status paragraph to form"
Further modifying index.html for git merge.

8. Utilisez git rebase en mode interactif pour visualiser et modifier vos commits récents. Cette étape est essentielle dans le processus d’écrasement des commits pour une fusion propre avec git merge.

git rebase -i HEAD~3

9. En mode interactif, choisissez de reword le premier commit et squash les suivants. Cette action consolide l’historique de vos commits, rendant votre fusion avec git merge plus propre et plus organisée.

Preparing commits for squashing in git merge.

10. Après avoir reformulé et sauvegardé, mettez à jour le message de commit consolidé pour refléter les changements cumulatifs. Cette étape finalise le processus d’écrasement, vous préparant ainsi à une fusion avec git merge simplifiée.

Finalizing the commit message for git merge.

Confirmez le succès de votre opération d’écrasement, qui est une partie intégrante du processus de fusion git merge lors de la gestion de plusieurs messages de commit.

Successful git squash operation.

Pour un écrasement et une fusion simultanés, utilisez git merge --squash. Cette technique fusionne et écrase la branche form dans la branche master, combinant efficacement les commits.

git merge --squash form

L’exécution de la commande git merge --squash combine les modifications de la branche form dans master tout en condensant tous les commits en un seul. Cette approche fait partie des stratégies efficaces de fusion git.

Executing git merge with squash option.

Mise en œuvre du Fast-Forward dans Git Merge

Pour un historique de commit rationalisé, le fast-forward est une méthode idéale, notamment pour les mises à jour mineures ou les corrections de bogues. Il vous permet de fusionner des branches sans commits de fusion supplémentaires, maintenant un historique propre et linéaire, crucial pour des processus de fusion git efficaces.

Le fast-forward se produit lorsqu’il n’y a pas de divergence dans la branche de base, généralement la branche master, permettant une intégration fluide des historiques et des mises à jour des pointeurs.

1. Passez à la branche form pour commencer le processus de fast-forward:

git checkout form

2. Créez et mettez à jour un fichier JavaScript, tel que index.js, dans la branche form, en mettant en scène et en validant les modifications:

git add index.js
git commit -m "Added JavaScript functionality"

3. Enfin, fusionnez la branche form dans master en utilisant une approche fast-forward. Cette étape aligne la branche master avec les dernières modifications de la branche form, créant un chemin de fusion git fluide et linéaire.

git checkout master
git merge form
Performing a fast-forward merge in Git.

Conclusion

Ce tutoriel vous a guidé à travers différentes techniques pour combiner des branches en utilisant git merge. Du regroupement des commits à l’avancement rapide, ces méthodes améliorent votre capacité à gérer des projets de manière collaborative dans Git.

Maintenant équipé de ces compétences, envisagez de contribuer à des projets collaboratifs sur GitHub, en appliquant vos connaissances de git merge dans des scénarios réels.

Source:
https://adamtheautomator.com/git-merge/