Comment corriger "Cannot pull into a repository with state: MERGING" dans EGit?

mon équipe a récemment déménagé à Git, et pour la deuxième fois aujourd'hui, Git s'est trompé sur une seule ligne de code que j'ai moi-même changé et déjà engagé dans mon local, sur un fichier qui a été édité la dernière fois par moi-même. C'est le message d'erreur qu'il me donne:

Cannot pull into a repository with state: MERGING"
org.eclipse.jgit.errors.WrongRepositoryStateException

Cannot pull into a repository with state: MERGING
    Cannot pull into a repository with state: MERGING

Je ne peux pas tirer ou pousser sur le serveur de suppression. Comment puis-je résoudre ce problème?

en fait, meilleure question, Comment puis-je empêcher cela?

19
demandé sur NobleUplift 2015-06-25 00:19:21

6 réponses

cela se produit parce que vous êtes au milieu d'une fusion. Soit compléter la fusion en résolvant tous les conflits et en ajoutant les fichiers appropriés à l'index, soit annuler la fusion avec git merge --abort. Notez que si vous ne annuler la fusion, vous obtiendrez probablement des conflits lorsque vous faites de votre git pull, car je suppose que votre traction précédente a causé des conflits (c'est pourquoi vous avez été laissé au milieu d'une fusion).

6
répondu David Deutsch 2015-06-25 12:36:27

le problème ici, c'est que les fichiers du dépôt distant ont été changés(c'est-à-dire que quelqu'un d'autre a changé et a poussé le fichier vers le dépôt que vous avez modifié dans votre copie locale) et maintenant vous avez aussi édité la même chose.Donc, quand vous essayez de pousser le fichier il lance une erreur.

Vous devez fusionner le fichier, puis propager les modifications et pousser.

Right click on your project -> Team ->Merge

lorsque vous faites ceci, il vous demandera quelle branche fusionner. Sélectionnez la branche et procéder à la fusion.

cas 1: s'il n'y a pas de conflit, alors le processus de fusion sera terminé. Tu peux t'engager et pousser maintenant.

cas 2: dans le cas où il y a un conflit, egit affichera le message d'erreur comme conflit et tous les fichiers ayant un conflit seront marqués par une icône rouge sur le nom du fichier dans votre explorateur de projet.

Right click the files with conflict-> Team -> Merge Tool

ceci ouvrira la fenêtre de comparaison.Vérifier et fusionner le les modifications que vous souhaitez. Une fois que vous avez terminé la fusion

Right click the files with conflict-> Team -> Add to index Commit the changes and Push

Remarque:: vous devez engager tous vos fichiers de mise en scène avant ce processus de fusion.

Et pour répondre à votre question

" en fait, meilleure question, Comment puis-je empêcher cela?"

Ce n'est pas un problème, cela se produit lorsque plusieurs utilisateurs travaillent dans un référentiel unique.Chaque fois que vous avez tendance à pousser, avant de pousser essayer de tirer à partir de la télécommande référentiel.Quand vous essayez de tirer egit dira s'il y a des changements ou des conflits en attente dans le dépôt distant et vous résoudrez les conflits et poussez.

3
répondu Vijay R. 2015-06-25 03:27:19
  1. j'ai essayé pour openshift problème de projet recommandé avant: git fusionner --abandonner.
  2. je suis devenu à problème "ne peut pas tirer dans un dépôt avec l'état: merging_resolved". Résolu par: git reset -- hard Voir:"ne peut pas tirer dans un dépôt de l'état: merging_resolved"
  3. Que fait: git pull
  4. git commit
  5. Pour quitter l'éditeur VIM, j'ai utilisé:<Esc key>:q<Enter key>

    6. Git poussez

Succès!

3
répondu Crimean.us 2017-05-23 12:26:36

cliquez avec le bouton droit de la souris sur Fichier/paquet de conflit et sélectionnez Ajouter à l'index et commit

1
répondu Sumit 2016-01-13 12:41:14

C'est comment je l'ai résolu -

1) Right click on project -> Team -> Reset -> [Reset popup will open]
2) By Default Local Repo will be selected -
Reset to: refs/head/master
Reset Type: Mixed (HEAD and index updated)
3) Click on Reset
4) Right click on project -> Team -> Git Pull
5) Right click on project -> Team -> Push to upstream
1
répondu prash 2018-09-03 04:39:06

j'ai rencontré ce genre de problème en utilisant eGit aujourd'hui. La solution est que vous pouvez choisir le fichier en conflit et de Rétablir commettre. Ensuite, vous pouvez résoudre le fichier en conflit et ajouter à index, commit et push

0
répondu david_pang 2016-10-21 11:53:28