web-dev-qa-db-fra.com

Eclipse EGit Checkout en conflit avec les fichiers: - EGit ne veut pas continuer

J'ai commencé Eclipse EGit. Dans certains scénarios, ce n'est vraiment pas complet.

J'ai un fichier local, par exemple. pom.xml changé. Sur le serveur git, ce fichier a été modifié. Je fais pull, EGIl dit: 

Conflit de sortie avec les fichiers: 

c'est-à-dire que tirer s'arrête (fetch est terminé, mais pas merge), c'est OK. Cependant la prochaine est une mauvaise expérience.

Je synchronise l'espace de travail, mets de côté mes modifications et les rend identiques à FETCH_HEAD Mais EGit ne veut pas continuer. Je remplace le fichier par la révision HEAD. Mais EGit ne veut toujours pas continuer.

Quelle opération utilisateur attendue standard devrait être avec EGit après la résolution du conflit?

METTRE À JOUR:

Je added to index, puis marked as Merged -> pull ne peut toujours pas passer.
Lorsque je sélectionne Merge je reçois le dialogue

enter image description here

Je ne peux pas valider le fichier car il ne figure pas dans la liste des fichiers modifiés.

39
Paul Verest

Situation:

  • Vous avez des modifications locales non validées 
  • Vous tirez du master repo 
  • Vous obtenez l'erreur "Conflit d'extraction avec les fichiers: xy"

Solution:

  • Met en scène et valide (au moins) les fichiers xy
  • Tirez à nouveau
  • Si automerge est possible, tout va bien.
  • Sinon, l'extraction fusionne les fichiers et insère les marqueurs de fusion-conflit (<<<<<<, >>>>).
    • Éditez manuellement les fichiers en conflit
  • S'engager et pousser
47
Jojo.Lechelt

Voici comment j'ai résolu mon problème:

  1. Cliquez avec le bouton droit sur le dossier contenant les modifications non validées sur votre compte local.
  2. Cliquez sur Équipe> Avancé> Assumer inchangé.
  3. Pull du maître.

METTRE À JOUR:

Comme Hugo Zuleta a fait remarquer à juste titre, vous devez être prudent lors de l'application. Il dit que il pourrait finir par dire que la branche est à jour, mais les modifications ne sont pas affichées, ce qui entraîne une désynchronisation de la branche. 

26
Burak Karakuş
  1. Après avoir fermé la boîte de dialogue Erreur de conflit; Depuis l'Explorateur de projets, cliquez avec le bouton droit de la souris sur la tête du projet -> Équipe -> Stash -> Stash Changes
  2. Entrez un nom pour votre cachette. PAR EXEMPLE. "Conflit"
  3. Essayez de tirer à nouveau. Espérons qu'il n'y a pas d'erreur cette fois-ci.
  4. Dans la vue Git Repository, développez votre référentiel -> Commits stockés.
  5. Cliquez avec le bouton droit sur la réserve que vous avez créée à l'étape 2 -> Appliquer les modifications stockées.
  6. Cela fait apparaître l’outil de fusion s’il ne peut pas le fusionner automatiquement.
  7. Résoudre manuellement les conflits de fusion dans le fichier/s.
  8. Clic droit sur l'éditeur de fichier -> Équipe -> Ajouter à l'index
  9. Si vous n'êtes pas prêt à valider le fichier ou si vous ne le souhaitez pas, cliquez avec le bouton droit de la souris sur l'éditeur de fichier -> Équipe -> Supprimer de l'index.
  10. Nettoyage: dans la vue Référentiel Git, cliquez avec le bouton droit sur le stash que vous avez créé à l'étape 2 -> Supprimer la validation stockée.

Votre fichier de répertoire de travail local doit être fusionné

17
Brock W.

Si une erreur survient pour ".settings/language.settings.xml" ou tout autre fichier de ce type, vous n'avez pas besoin de git.

  1. Equipe -> Valider -> Liste de fichiers par étapes, vérifiez si un fichier indésirable existe, -> Cliquez avec le bouton droit de la souris sur chaque-> supprimer de l'index.
  2. Dans la liste des fichiers non stockés, vérifiez s’il existe un fichier indésirable, -> cliquez avec le bouton droit de la souris sur chaque fichier -> Ignore.

Désormais, si la liste de fichiers intermédiaires est vide et la liste de fichiers non gérés, tous les fichiers sont marqués comme étant ignorés. Vous pouvez tirer. Sinon, suivez les autres réponses.

0
Gururaja Hegde

Je suppose que la meilleure façon de faire est la suivante:

  1. Stockez toutes vos modifications dans une branche distincte.
  2. Ensuite, effectuez une réinitialisation matérielle sur le maître local.
  3. Puis fusionnez vos modifications depuis la branche créée localement 
  4. Puis validez et poussez vos modifications.

Voilà comment je résous le mien, chaque fois que cela se produit.

0
Pritam Banerjee

Une fois que vous avez reçu de la disgracieuse CheckoutConflictException d’Eclipse, le bouton Eclipse-Merge Tool est désactivé.

Git a besoin de tous vos fichiers ajoutés à l'index pour activer la fusion.

Donc, pour fusionner vos modifications et les valider, vous devez d'abord ajouter vos fichiers à l'index "Ajouter à l'index" et "Valider" les sans "Push" . Ensuite, vous devriez voir une requête en attente et une demande Push en attente dans Eclipse. Vous voyez cela dans une flèche vers le haut et une flèche vers le bas. 

Si tous les fichiers en conflit sont dans la validation, vous pouvez "tirer" à nouveau. Ensuite, vous verrez quelque chose comme:

\ <<<<<<<HEAD Version du serveur \.= ======= Version locale >>>>>> Branche 'de' git

Ensuite, vous pouvez soit le modifier à l'aide de l'outil de fusion, qui est maintenant activé, soit simplement effectuer la fusion à la main directement dans le fichier. Dans la dernière étape, vous devez ajouter à nouveau les fichiers modifiés à l'index et "Commit and Push" them.

Vérification terminée!

0
Mathias Rieder