GIT : enregistre un bug lors de la fusion des conflits dans IntelliJ IDEA (le code après la résolution du conflit est le même que celui de l'entrepôt local, provoquant l'échec de la fusion)

Version IntelliJ IDÉE

IntelliJ IDEA 2017.1.4 x64
1
Description du problème

Lorsque nous utilisons git pour développer, nous rencontrons souvent des conflits. Généralement, lors du développement collaboratif, un fichier est modifié par deux personnes en même temps. C'est à ce moment-là que nous extrayons le code pour résoudre le conflit, que nous l'ajoutons à nouveau, puis le validons et enfin pousser.

Ce blog enregistre un petit problème de résolution de conflits avec IntelliJ IDEA. Construisons d'abord le conflit

GitHub est le suivant : 


L’IDEA locale est la suivante : 


Les données de la troisième ligne du fichier README.md dans l'entrepôt local sont différentes de celles sur github. Si nous poussons, il nous sera demandé que nous devons d'abord extraire (récupérer + fusionner). Cette invite ne sera pas démontrée ici. Nous tirera directement 


Signalez-nous qu'il y a un conflit, nous choisissons de fusionner et résolvons le conflit sur IDEA 


Notez l'image ci-dessous : 


Nous résolvons les conflits comme suit : Cliquez ensuite sur Appliquer


Après avoir résolu le conflit, nous devons ré-ajouter, valider puis pousser, mais pour le moment, nous utilisons la commande git status -s pour afficher l'état actuel via le client Windows git bash, mais nous constatons qu'il n'y a aucun code qui peut être ajouté. Mais à la dernière position de la flèche ( master|MERGING) 
Remarque : Ce MERGING apparaît au début de la fusion et disparaît à la fin du commit, c'est-à-dire à la fin de la fusion. 

git bash (ligne de commande pure) / linux (centos) ligne de commande pure : Même si le code qui résout le conflit est le même que le code de l'entrepôt local, nous devons reprendre le commit add. Vérifiez le git status -s commande avant d'ajouter et vous trouverez le devant de ce fichier. Le statut est UU 

IDEA gère les conflits : si le code qui résout finalement le conflit est différent du code de l'entrepôt local, il vous demandera qu'il y a du contenu qui peut être ajouté (status -s vérifie que l'état du début du fichier est UU, le même que git bash / linux), et la solution est terminée. Si le code en conflit est le même que le code de l'entrepôt local, il est comme indiqué dans la figure ci-dessous. À ce stade, via les commandes git diff et git diff –cached , on constate que la zone de travail, la zone de stockage temporaire et le code de l'entrepôt local sont tous identiques. 

Parce que nous ne pouvons pas ajouter celui ci-dessus, nous nous engageons donc directement via IDEA. Cela nous rappelle en fait qu'aucun code ne peut être validé. 
 


C'est à ce moment-là que nous regardons le journal git. Évidemment, la fusion n'est pas encore terminée. Évidemment, je viens de résoudre le conflit, mais à mi-chemin de la fusion, IDEA a abandonné le choix. 


Si nous essayons de pousser le code vers l'entrepôt à ce moment-là, cela se produira : (à savoir que nous devons d'abord fusionner puis pousser, c'est-à-dire que la moitié de la fusion est maintenant) 


À ce stade, si nous essayons de fusionner via le git fourni avec IDEA, une erreur se produira car une fusion est actuellement en cours. 


Solution

Maintenant que le problème est localisé, IDEA a un problème lorsque la fusion est à mi-chemin. La prochaine chose ne peut donc être résolue que par nous-mêmes. Analysons où se trouve la rupture maintenant, car nous venons de vérifier via git diff et git diff –cached commandes Il n'y a pas de différence dans l'état, alors pensons que l'ajout est terminé. Eh bien, nous nous engageons via la ligne de commande 


Les informations de validation suivantes (générées par la fusion) apparaissent, :wq se termine et la fusion réussit. 


Observez le journal git d'IDEA et constatez que c'est également normal 


Il existe une autre solution : c'est-à-dire que nous supprimons directement .git/MERGE_HEAD, de sorte que la moitié de la fusion soit tuée par nous. Je n'ai pas essayé cette méthode, et les étudiants intéressés peuvent essayer ---------
- ----------- 
Auteur : M1lo 
Source : CSDN 
Texte original : https://blog.csdn.net/shangmingtao/article/details/79143710 
Déclaration de droits d'auteur : Cet article est l'article original du blogueur, veuillez joindre le lien de réimpression au billet de blog !

Supongo que te gusta

Origin blog.csdn.net/qq_19822039/article/details/83718329
Recomendado
Clasificación