Maison  >  Article  >  outils de développement  >  Comment annuler une opération de fusion git

Comment annuler une opération de fusion git

PHPz
PHPzoriginal
2023-04-03 09:17:1014961parcourir

Git est l'un des outils de contrôle de version les plus couramment utilisés dans l'industrie. git merge est l'une des opérations les plus courantes dans git, qui peut fusionner deux branches différentes. Cependant, nous fusionnons parfois une branche ou un code qui ne devrait pas être fusionné, auquel cas nous devons annuler la fusion. Alors, comment annuler l’opération de fusion git ? Cet article vous présentera quelques solutions.

Comment vérifier l'état de la fusion

  1. Utilisez la commande git log

Tout d'abord, nous devons comprendre l'état de la fusion. Nous pouvons utiliser la commande git log pour afficher les informations pertinentes. Exécutez la commande :

git log --graph --oneline --decorate

Cette commande affichera une belle visualisation de l'historique des validations, y compris les informations de fusion et de validation pour toutes les branches.

  1. Utilisez la commande git reflog

La commande Git reflog peut répertorier l'historique des modifications des références Git, y compris la validation, la fusion, le rebase, etc. Exécutez la commande :

git reflog

Cette commande affichera l'historique de toutes les opérations git, y compris les opérations de fusion git. Le résultat est le suivant :

cb61cbb HEAD@{0}: merge dev_branch: Fast-forward
a44ab51 HEAD@{1}: checkout: moving from dev_branch to master
cb61cbb HEAD@{2}: merge dev_branch: Merge made by the 'recursive' strategy.
e6c8ed6 HEAD@{3}: checkout: moving from master to dev_branch

Annuler la fusion

  1. Utilisez la commande git reset

Si nous voulons annuler complètement l'opération de fusion et ne voulons pas affecter l'historique de soumission d'origine, nous pouvons utiliser le Commande git reset pour y parvenir. Exécutez la commande :

git reset --hard HEAD^

La commande ci-dessus déplacera le pointeur HEAD d'un commit et supprimera toutes les modifications de code provoquées par l'opération de fusion. Notez qu’il s’agit d’une pratique dangereuse et qu’elle doit être utilisée avec prudence.

  1. Utilisez la commande git revert

Si nous voulons conserver l'historique des validations d'origine et annuler l'impact d'une opération de fusion, nous pouvons utiliser la commande git revert. Exécutez la commande :

git revert -m 1 <merge commit sha>

Notez que le paramètre -m 1 fait ici référence à l'annulation des modifications d'un seul commit parent. Si un commit de fusion fusionne plusieurs commits parents, nous devons utiliser -m 2, -m 3 et d'autres paramètres. Plus précisément, utilisez Le paramètre requis dépend de la situation.

  1. Utilisez la commande git reset et la commande git push

Si l'opération de fusion a été poussée vers l'entrepôt distant, nous devons utiliser la commande git reset pour restaurer l'entrepôt local à l'état avant l'opération de fusion, et puis utilisez la commande git push -f pour pousser l'entrepôt distant. L'entrepôt est forcé de revenir au même état. Il convient de noter ici que cette approche supprimera toutes les modifications dans le référentiel distant et peut entraîner des problèmes avec le code d'autres personnes, elle doit donc être utilisée avec une grande prudence.

Résumé

Cet article explique comment annuler l'opération de fusion git, notamment via la commande git reset, la commande git revert, la commande git reset et la commande git push. Soyez prudent lorsque vous utilisez ces commandes pour éviter tout impact inutile sur votre code. Dans le même temps, nous avons également appris à afficher des informations pertinentes sur les opérations de fusion de git, ce qui est très utile pour résoudre les problèmes liés à la fusion de git.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn