Git Pull Master dans la branche

Yahya Irmak 13 septembre 2023
  1. Tirer la branche principale vers une autre branche
  2. Utiliser la commande git merge pour tirer les modifications de la branche principale vers une autre branche
  3. Utiliser la commande git rebase pour tirer les modifications de la branche principale vers une autre branche
  4. Utilisez la commande git pull pour fusionner les modifications de la branche master dans une autre branche
  5. Conclusion
Git Pull Master dans la branche

Lors du développement de logiciels avec l’outil Git, vous pouvez créer différentes branches pour différentes fonctionnalités. Lorsque vous apportez des modifications à la branche principale (master), ces modifications ne sont pas automatiquement ajoutées à d’autres branches.

Cet article expliquera comment tirer toutes les modifications de la branche principale vers une autre branche dans Git.

Tirer la branche principale vers une autre branche

Lors de l’utilisation de l’outil Git, vous pouvez avoir besoin de tirer les modifications que vous avez apportées à la branche principale vers une autre branche. Ces modifications ne sont pas transférées automatiquement, vous devez donc les effectuer manuellement.

Le reste de l’article expliquera comment tirer les modifications de la branche principale vers la branche dev de trois manières différentes.

Note
Parce que cela pourrait être considéré comme déshumanisant envers les personnes réduites en esclavage, la branche principale a été renommée en main.

Utiliser la commande git merge pour tirer les modifications de la branche principale vers une autre branche

Une autre façon d’accomplir cela est d’utiliser la commande git merge

Étape 1 : Passer à la branche master

Commencez par passer à la branche master. Vous pouvez le faire en utilisant la commande git checkout :

git checkout master

Cette commande vous assure que vous êtes sur la branche master, qui est la source des modifications que vous souhaitez intégrer dans votre branche de fonctionnalité.

Étape 2 : Récupérer les dernières modifications

Avant de fusionner, il est crucial de s’assurer que votre branche master locale est à jour par rapport à la branche master distante. Pour ce faire, utilisez la commande git pull :

git pull origin master

Cette commande récupère les dernières modifications de la branche distante master et les fusionne dans votre branche locale master.

Étape 3 : Passer à votre branche de fonctionnalité

Maintenant, revenez à votre branche de fonctionnalité où vous voulez tirer les modifications. Utilisez la commande git checkout, en remplaçant feature-branch par le nom réel de votre branche de fonctionnalité :

git checkout feature-branch

Étape 4 : Fusionner master dans votre branche de fonctionnalité

Avec votre branche de fonctionnalité sélectionnée, vous pouvez fusionner les modifications de la branche master dedans en utilisant la commande git merge :

git merge master

Un regard plus attentif sur git merge

La commande git merge est utilisée pour incorporer des modifications d’une branche dans une autre. Dans ce cas, nous fusionnons les modifications de la branche master dans votre branche de fonctionnalité.

Git va automatiquement créer un nouveau commit de fusion s’il y a eu de nouvelles modifications dans les deux branches depuis leur divergence. S’il n’y a pas de conflits, la fusion sera simple.

Étape 5 : Résoudre les conflits (le cas échéant)

Si Git rencontre des conflits lors de la fusion, il mettra en pause et indiquera quels fichiers ont des conflits. Vous devrez ouvrir ces fichiers, localiser les marqueurs de conflit et décider comment les résoudre. Une fois que vous avez résolu les conflits, enregistrez les fichiers.

Après avoir résolu les conflits dans un fichier, marquez-le comme résolu en utilisant la commande git add :

git add <conflicted-file>

Répétez ce processus pour chaque fichier en conflit.

Étape 6 : Valider la fusion

Une fois que vous avez résolu tous les conflits et marqué les fichiers comme résolus, validez la fusion avec un message de commit significatif :

git commit -m "Merge branch 'master' into feature-branch"

Ce message de commit décrit l’opération de fusion pour référence future.

Étape 7 : Pousser la branche de fonctionnalité mise à jour

Maintenant que vous avez fusionné avec succès les modifications de la branche master dans votre branche de fonctionnalité, poussez la branche de fonctionnalité mise à jour vers le référentiel distant :

git push origin feature-branch

Utiliser la commande git rebase pour tirer les modifications de la branche principale vers une autre branche

Une autre façon d’accomplir cela est d’utiliser la commande git rebase. Nous vous guiderons à travers le processus d’utilisation de git rebase pour tirer les modifications de la branche master dans une autre branche.

Étape 1 : Passer à la branche master

Commencez par passer à la branche master. Vous pouvez le faire en utilisant la commande git checkout :

git checkout master

Cette commande vous assure que vous êtes sur la branche master, qui est la source des modifications que vous souhaitez intégrer dans votre branche de fonctionnalité.

Étape 2 : Récupérer les dernières modifications

Avant de faire un rebase, il est crucial de s’assurer que votre branche master locale est à jour par rapport à la branche master distante. Pour ce faire, utilisez la commande git pull :

git pull origin master

Cette commande récupère les dernières modifications de la branche distante master et les fusionne dans votre branche locale master.

Étape 3 : Passer à votre branche de fonctionnalité

Maintenant, revenez à votre branche de fonctionnalité où vous voulez tirer les modifications. Utilisez la commande git checkout, en remplaçant dev par le nom réel de votre branche de fonctionnalité :

git checkout dev

Étape 4 : Rebase dev sur master

Avec votre branche de fonctionnalité vérifiée, vous pouvez maintenant la rebaser sur la branche master mise à jour. Utilisez la commande git rebase suivie du nom de la branche sur laquelle vous voulez rebaser, qui est master dans ce cas :

git rebase master

Git appliquera automatiquement les commits de votre branche de fonctionnalité sur la branche master. Pendant ce processus, s’il y a des conflits entre vos modifications et les modifications dans master, Git mettra en pause le rebasage et vous demandera de résoudre ces conflits manuellement.

La commande git rebase est un outil puissant pour réécrire l’historique des commits.

Lorsque vous exécutez git rebase master dans ce contexte, Git prend tout l’historique des commits de votre branche de fonctionnalité (à partir du point où elle a divergé de master) et rejoue chaque commit par-dessus la branche master actuelle.

Cela déplace essentiellement votre branche de fonctionnalité jusqu’au sommet de master, comme si vous l’aviez créée à partir de l’état actuel de la branche master.

Un des avantages d’utiliser git rebase plutôt que git merge est qu’il résulte en un historique des commits linéaire, ce qui le rend plus facile à comprendre et à parcourir.

Cependant, étant donné qu’il réécrit l’historique des commits, il est essentiel de l’utiliser avec précaution, en particulier dans des environnements de collaboration.

Étape 5 : Résoudre les conflits (le cas échéant)

Si Git rencontre des conflits lors du rebasage, il se mettra en pause et vous montrera quels fichiers ont des conflits. Vous devrez ouvrir ces fichiers, localiser les marqueurs de conflit et décider comment les résoudre. Une fois que vous avez résolu les conflits, enregistrez les fichiers.

Après avoir résolu tous les conflits dans un fichier, marquez-le comme résolu en utilisant la commande git add :

git add <conflicted-file>

Répétez ce processus pour chaque fichier en conflit.

Étape 6 : Continuer le rebasage

Après avoir résolu tous les conflits et marqué les fichiers comme résolus, vous pouvez poursuivre le rebasage en utilisant la commande suivante :

git rebase --continue

Git appliquera les commits restants de votre branche de fonctionnalité par-dessus la branche master.

Étape 7 : Pousser la branche de fonctionnalité mise à jour

Maintenant que vous avez rebasé avec succès votre branche de fonctionnalité sur master, vous pouvez pousser la branche de fonctionnalité mise à jour vers le dépôt distant :

git push origin dev

git fetch rebase

Utilisez la commande git pull pour fusionner les modifications de la branche master dans une autre branche

Suivez les étapes ci-dessous pour utiliser la commande git pull afin de mettre à jour votre branche de travail avec les modifications de la branche main.

Étape 1 : Vérifier votre branche de travail

Commencez par passer à la branche que vous souhaitez mettre à jour avec les modifications de main. Vous pouvez utiliser la commande git checkout pour le faire. Remplacez feature-branch par le nom de votre branche de travail :

git checkout feature-branch

Cette commande vous assure d’être sur la branche que vous souhaitez mettre à jour.

Étape 2 : Tirer les modifications de main

Maintenant que vous êtes sur votre branche de travail, vous pouvez utiliser la commande git pull pour récupérer et fusionner les dernières modifications de la branche main.

La commande git pull est une combinaison de deux commandes Git : git fetch et git merge. Elle récupère les modifications d’un dépôt distant et les intègre dans votre branche actuelle.

git pull origin main --allow-unrelated-histories

Voici ce que chaque partie de cette commande fait :

  • git pull : Initie le processus de récupération.
  • origin : Le nom par défaut du dépôt distant. Si vous travaillez avec un dépôt distant différent, remplacez origin par son nom.
  • main : La branche à partir de laquelle vous souhaitez récupérer les modifications. Vous pouvez spécifier un nom de branche différent si nécessaire.
  • --allow-unrelated-histories : Cette option permet à Git de fusionner des histoires non liées, ce qui peut être utile lorsque vous combinez des branches ayant des histoires de commit différentes.

Comprendre --allow-unrelated-histories

L’option --allow-unrelated-histories est nécessaire lorsque vous récupérez des modifications d’une branche qui a une historique de commit différente de votre branche actuelle.

Cela peut se produire lorsque vous fusionnez ou récupérez des modifications d’une branche qui a été créée de manière indépendante ou qui ne partage pas d’ancêtre commun avec votre branche actuelle.

En utilisant --allow-unrelated-histories, vous indiquez à Git de procéder à la fusion même si les historiques de commit n’ont pas de point de départ commun clair. C’est une façon d’intégrer des branches non liées dans une seule branche.

Étape 3 : Résoudre les conflits (le cas échéant)

Pendant le processus de fusion, Git peut identifier des conflits si les modifications dans votre branche de travail et la branche main se chevauchent ou entrent en conflit les unes avec les autres. Lorsque des conflits se produisent, Git mettra en pause et indiquera quels fichiers ont des conflits.

Pour résoudre les conflits, ouvrez les fichiers en conflit dans votre éditeur de code. À l’intérieur de ces fichiers, vous verrez des sections délimitées par des marqueurs de conflit tels que <<<<<<<, ======= et >>>>>>>. Modifiez manuellement le fichier pour choisir les modifications à conserver et celles à rejeter.

Après avoir résolu les conflits dans un fichier, enregistrez les modifications.

Étape 4: Marquer les conflits comme résolus

Une fois que vous avez résolu les conflits dans un fichier, vous devez le marquer comme résolu en utilisant la commande git add. Remplacez <nom-du-fichier-en-conflit> par le nom réel du fichier:

git add <conflicted-file>

Répétez ce processus pour chaque fichier en conflit.

Étape 5: Valider la fusion

Après avoir résolu les conflits et marqué les fichiers comme résolus, vous devez valider la fusion avec un message de validation significatif:

git commit -m "Merge changes from main into feature-branch"

Ce message de validation doit décrire l’objectif de la fusion pour référence future.

Étape 6: Poussez votre branche mise à jour

Enfin, poussez les modifications que vous avez apportées sur votre branche de travail vers le dépôt distant:

git push origin feature-branch

Cette commande garantit que les modifications sont enregistrées sur le dépôt distant, les rendant accessibles aux autres membres de l’équipe si vous collaborez sur le projet.

git pull

Conclusion

Dans le développement logiciel, il est courant de maintenir différentes branches pour diverses fonctionnalités ou corrections de bugs. Cependant, il est essentiel de garder ces branches à jour avec les dernières modifications de la branche main pour garantir un processus d’intégration harmonieux ultérieurement.

Dans cet article, nous avons exploré trois façons différentes d’extraire les modifications de la branche main vers une autre branche: l’utilisation de git merge, git rebase et git pull. Chaque méthode a ses avantages et ses cas d’utilisation.

Auteur: Yahya Irmak
Yahya Irmak avatar Yahya Irmak avatar

Yahya Irmak has experience in full stack technologies such as Java, Spring Boot, JavaScript, CSS, HTML.

LinkedIn

Article connexe - Git Pull