Maison >outils de développement >git >Pourquoi git produit-il des conflits ?
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.
L'environnement d'exploitation de cet article : système Windows 10, Git version 2.30.0, ordinateur Dell G3.
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!