Mise à jour de la branche depuis le master dans Git

Abdul Jabbar 30 janvier 2023
  1. Mettre à jour la branche principale à l’aide de la commande merge dans Git
  2. Mettre à jour la branche principale à l’aide de la commande rebase
Mise à jour de la branche depuis le master dans Git

En travaillant dans Git avec de nombreux développeurs et analystes travaillant simultanément sur les différentes branches, nous avons pu rencontrer de nombreux problèmes. Un problème courant survient lorsqu’un membre de l’équipe apporte des modifications dans sa branche locale, tandis que d’autres travaillent sur cette branche distante, puis combinent leurs modifications dans la branche principale distante.

De plus, si nous poussons la branche locale de travail et ne récupérons pas la branche principale distante, nous devons réécrire les modifications des autres développeurs dans la branche principale distante.

Cet article porte sur les commandes git update master branch et nous aborderons le modèle complet de branchement de la mise à jour de Git. La fonctionnalité branchement se trouve dans la plupart des systèmes de contrôle de version modernes et uniques.

Dans Git, la fonctionnalité la plus importante et la plus utilisable est la création de branches, qui fait partie de notre processus de développement quotidien. Cet article nous guidera sur la mise à jour d’une branche Git en utilisant les méthodes mentionnées ci-dessous.

Si nous voulons que notre branche de fonctionnalité git soit mise à jour avec les nouvelles modifications de la branche principale, nous devons suivre l’une des techniques suivantes :

  • Fusionner
  • Rebase

La fusion crée plus d’engagement tandis que le changement de base réécrit l’historique dans le référentiel.

Supposons que nous soyons sur n’importe quelle branche de fonctionnalité du référentiel que nous avons créée pour ajouter la sous-fonctionnalité dans notre processus de développement.

L’état actuel de la branche suit.

git branch
* feature branch

Et il y a de nouveaux commits disponibles sur la branche origin/master du dépôt :

git fetch

From git repository
   xyz88874..def74125  master -> origin/master

Alors, comment fusionnerions-nous le commit ci-dessus de la branche locale à la branche principale ? Nous avons maintenant deux solutions, la première utilise les commandes merge et l’autre est les commandes rebase dans Git.

Mettre à jour la branche principale à l’aide de la commande merge dans Git

Comme nous avons la situation où nous voulons fusionner le dernier commit de la branche locale vers la branche principale, nous pouvons utiliser la commande ci-dessous pour fusionner les commits.

git merge origin/master

Lorsque nous allons valider les modifications de la branche locale vers la branche distante, et si nous y trouvons des conflits, nous allons d’abord fusionner les conflits dans un seul fichier et créer un nouveau commit de fusion pour celui-ci. Si nous ne trouvons pas de conflit dans le répertoire de travail, un nouveau commit sera poussé directement vers une branche distante.

Mettre à jour la branche principale à l’aide de la commande rebase

Comme nous avons la situation où nous voulons rebaser le dernier commit de la branche locale vers la branche principale, nous pouvons utiliser la commande ci-dessous pour rebaser les commits.

git rebase origin/master

Rebase décale vers le haut tous les commits divergents de la branche de fonctionnalité. Cela indique que les commits divergents seront désormais constitués de \new commit hashes\ car son historique sera réécrit dans la branche master.

De plus, si notre branche de fonctionnalité est déjà poussée vers la branche maître distante, nous devons forcer la poussée pour la mettre à jour :

git push origin feature --force

Cependant, si d’autres développeurs ont extrait cette branche de fonctionnalité, cette méthode n’est pas recommandée, mieux vaut s’en tenir à la commande merge pour ce scénario.

Auteur: Abdul Jabbar
Abdul Jabbar avatar Abdul Jabbar avatar

Abdul is a software engineer with an architect background and a passion for full-stack web development with eight years of professional experience in analysis, design, development, implementation, performance tuning, and implementation of business applications.

LinkedIn

Article connexe - Git Branch