Comment puis-je corriger "Impossible de tirer dans un référentiel avec l'état: MERGING" dans EGit?
Mon équipe a récemment déménagé à Git, et pour la deuxième fois aujourd'hui, Git a commis une erreur sur une seule ligne de code que j'ai moi même changé et déjà engagé à mon local, sur un fichier qui a été modifié 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 peut pas tirer ou de pousser à le supprimer du serveur. Comment puis-je résoudre ce problème?
En fait, la meilleure question, comment puis-je éviter cela?
source d'informationauteur NobleUplift
Vous devez vous connecter pour publier un commentaire.
Ce qui se passe parce que vous êtes au milieu d'une fusion. Soit la fin de la fusion par la résolution de tous les conflits et en ajoutant les fichiers appropriés à l'index, ou annuler la fusion avec
git merge --abort
. Notez que si vous ne annuler la fusion, vous obtiendrez probablement des conflits lorsque vous faites votregit pull
comme je suppose que votre précédente pull est source de conflits (qui est pourquoi vous avez été laissé au milieu d'une fusion).Résolue par: git reset --hard
Voir: "ne peut pas tirer dans un dépôt de l'état: merging_resolved"
<Esc key>:q<Enter key>
6. git push
Succès!
Le problème, ici, est à distance de fichiers du référentiel ont été changé(c'est à dire quelqu'un d'autre ont changé et a poussé le fichier dans le répertoire qui vous changé dans votre copie locale) et maintenant, vous aussi édité la même.Ainsi, lorsque vous essayez de pousser le fichier, il renvoie une erreur.
Vous avez de fusionner le fichier, puis valider les modifications et les pousser.
Right click on your project -> Team ->Merge
Lorsque vous faites cela, il va demander de la branche de fusionner. Sélectionnez la branche et de procéder à la fusion.
cas 1: Si il n'y a pas de conflit, puis de fusionner processus sera terminé.
Vous pouvez commit et push maintenant.
cas 2: Dans le cas où si il y a un conflit egit affichera le message d'erreur que les Conflits et tous les fichiers ayant conflit sera marqué avec une icône rouge sur le nom de fichier sur votre explorateur de projet.
Right click the files with conflict-> Team -> Merge Tool
Cela va ouvrir la fenêtre de comparaison de.Vérifiez et de fusionner les modifications que vous souhaitez.
Une fois que vous avez terminé la fusion de
Right click the files with conflict-> Team -> Add to index
Commit the changes and Push
Note : Vous avez à engager la totalité de votre mise en scène fichiers avant de ce processus de fusion.
Et pour répondre à votre question
"En fait, la meilleure question, comment puis-je éviter 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 sur le dépôt distant.Lorsque vous essayez de tirer egit dira si il y a des modifications en attente ou les conflits dans le dépôt distant et vous à résoudre les conflits et de pousser.
Clic droit sur les conflits de fichier/package et sélectionnez ajouter à l'index et de s'engager
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 conflit fichier et l'ajouter à l'index, commit et push
Si l'état est déjà fusionné état et nous n'avons pas de conflits de fichiers dans notre espace de travail.
Au lieu de commettre de l'équipe de synchronisation de vue, essayer de git-mise en scène de la vue.
-- a fonctionné pour moi