Maison >outils de développement >git >Pourquoi git produit-il des conflits ?

Pourquoi git produit-il des conflits ?

WBOY
WBOYoriginal
2022-06-24 10:38:1710897parcourir

Dans git, la raison des conflits est que lors de la fusion de fichiers, le même emplacement du même fichier a été modifié et le contenu est différent ; c'est-à-dire que le même fichier des deux branches soumises a été fusionné avec des opérations différentes à au même emplacement. Un conflit se produit ; les opérations courantes qui provoquent des conflits incluent la fusion de deux succursales et l'extraction du code de l'entrepôt distant vers le local.

Pourquoi git produit-il des conflits ?

L'environnement d'exploitation de cet article : système Windows 10, Git version 2.30.0, ordinateur Dell G3.

Pourquoi git est-il en conflit

1. Opérations de conflit courantes :

  • Fusionner deux branches

  • Tirez le code de l'entrepôt distant vers le

2. Causes des conflits :

Lors de la fusion de fichiers, si le même emplacement du même fichier est modifié et que le contenu est différent, des conflits surviendront

Trois. Étapes de la solution :

1. Vérifiez le fichier de conflit avec le statut git

2.vim src/main/java/a.txt (en supposant que a.txt est un fichier de conflit, il doit s'agir du chemin complet du fichier) , modifiez manuellement la partie conflit

3.git add src/main/java/a.txt indique à Git que le conflit est résolu

4.git commit -m 'resolve conflict' (la résolution des conflits est un commentaire, personnalisable)

deux branches soumises Différentes opérations sur le même fichier au même endroit sont fusionnées

Démonstration pratique

(1) Scénario

  Deux branches différentes dans la bibliothèque locale modifient le même fichier et le même bloc de code, et les deux branches fusionnent les modifications en Sur la branche master, lorsque master fusionne le code de la deuxième branche, il rapporte une erreur : conflit de fusion.

(2) Bibliothèque locale

<1>branche principale

<2> Créer deux branches

<3> succursale du ranch :

bBranche de branche :

(3) Un conflit se produit lors de la fusion de branches

Fusionner la branche aBranch (fusionner la branche aBranch avec la branche principale actuelle) :

Remarque :

git merge : Par défaut, Git effectue une "fusion rapide" et pointera directement la branche Master vers la branche Develop.

Après avoir utilisé le paramètre --no-ff, une fusion normale sera effectuée et un nouveau nœud sera généré sur la branche Master. Afin d’assurer la clarté de l’évolution des versions, il est recommandé d’adopter cette méthode.

Re-fusionner la branche bBranch et provoquer des conflits :

mergeTest.txt Contenu du fichier :

(4) Résoudre le conflit

Sur la branche actuelle (maître), retrouver le fichier de conflit et modifier le code de conflit directement, ajoutez, validez.

Remarque : Méthode simple, utilisez vim pour modifier et cat pour afficher les fichiers en conflit. (Attention à supprimer le délimiteur de code de conflit généré automatiquement par git)

(5) Terminez la résolution du conflit

Remarque : la soumission ou la fusion générera des nœuds git. Chaque nœud correspond à une version de code.

Apprentissage recommandé : "Tutoriel 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