Git écraser le maître avec la branche

Abdul Jabbar 31 mai 2022
Git écraser le maître avec la branche

Git est habitué à garder une trace du code source que nous utilisons ; cela facilite également la collaboration et nous aide à préserver notre projet dans l’état actuel.

Lorsque nous développons de nouvelles fonctionnalités, leur historique doit être à portée de main, car il est très utile pour développer toute application ou documentation.

Git écraser le maître avec la branche

Git a deux façons de mélanger les changements d’une branche à l’autre. L’un est la rebase, et l’autre est merged avec n’importe quelle branche dans une autre branche du dépôt.

Cet article traitera de la fusion complète de la branche master dans Git à partir d’une autre branche de dépôt.

Lors de l’utilisation des workflows Git, les modifications que nous avons apportées à notre code doivent finalement être conclues dans la branche master lorsque les tâches de l’application sont terminées.

Nous devons également comprendre que nous pourrions avoir une autre branche que nous avons développée, qui contient des modifications de code qui ne sont pas encore prêtes pour le déploiement en production, et nous avons nommé cette branche comme dev selon les exigences et les règles organisationnelles.

Dans certains cas, nous avons fait trop de changements dans notre branche dev, puis après cela, nous rencontrons des difficultés en combinant la branche dev avec notre branche master ; il ne peut pas être exécuté facilement.

Une façon de surmonter cette situation mouvementée est de remplacer entièrement notre branche master par la branche dev. Nous pouvons l’accomplir de deux manières qui sont expliquées ci-dessous.

Fusionner la stratégie comme Ours

Pour accomplir cette stratégie, nous allons d’abord exécuter les commandes suivantes pour fusionner la branche dev dans la branche master à l’aide de la stratégie de fusion ours, qui est la suivante.

git checkout dev
git merge -s ours master
git checkout master
git merge dev

L’option --strategy=ours dans la fusion est destinée à remplacer l’ancien historique des branches de fonctionnalités. Maintenant, notre master aura tout le contenu de notre dev et ignorera tous les changements dans le maître.

En appliquant cette méthode, nous obtiendrons un commit de fusion propre et sûr ; d’autres développeurs utilisant ces branches peuvent également bénéficier de cette fusion car ils ne rencontreront pas de problèmes lors de la fusion de leurs branches de fonctionnalités.

Par contre, l’inconvénient de cette méthode est que cette fusion pourrait ne pas fonctionner si nos branches dev et master ont rayonné à plus grande échelle dans un projet.

Forcer à pousser

L’autre option consiste à forcer la branche dev sous un nom différent, mais cette méthode est sauvage à partir du problème évoqué ci-dessus.

git push -f origin dev: master

A l’aide du drapeau alias -f mentionné dans la commande, notre ancienne branche master est entièrement écrasée par la branche dev, y compris l’historique.

Nous devons être très prudents lors de l’application de la méthode ci-dessus car elle supprimera tous les commits présents dans la branche master car ils ne sont pas non plus disponibles dans la branche dev du dépôt.

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