44 votes

Git dit qu'un fichier est non fusionné et que je ne peux pas valider, mais le fichier semble être fusionné.

J'avais environ 12 conflits de fichier lorsque j'ai fusionné les branches. J'ai corrigé manuellement tous les conflits et les met en scène les fichiers. Mais maintenant lorsque je tente de la commettre, il dit que l'un des fichiers est non fusionné.

U      app/models/disclosure_event.rb
fatal: 'commit' is not possible because you have unmerged files.
Please, fix them up in the work tree, and then use 'git add/rm <file>' as
appropriate to mark resolution and make a commit, or use 'git commit -a'.

Quand je tape git status, il affiche tous les fichiers modifiés, y compris les "disclosure_event.rb", en vertu de l' Changes to be committed. Il ne montre pas de fichiers comme unstaged. J'ai à plusieurs reprises essayé d'ajouter le fichier, mais il semble ne rien faire. Si j'ouvre le fichier, tout ce qui ressemble beaucoup.

Des idées? Je suis complètement coincé.

60voto

Ryan Stewart Points 46960

Je ne peux pas vous dire ce qui ne va pas, mais vous pourriez essayer

 git reset app/models/disclosure_even.rb
git add app/models/disclosure_even.rb
 

et ensuite commettre.

13voto

alexkasko Points 1532

J'ai eu exactement la même situation aujourd'hui sur les branches qui fusionnent (pas rebasent).

Je remarque que ce fichier est erroné, dans votre cas:

 U      app/models/disclosure_event.rb
 

était absent en statut git. Mais cela pourrait être considéré comme non fusionné dans l'interface graphique de Gitk. Il était également absent dans la copie de travail (déplacé à un autre endroit dans mon cas).

J'ai essayé git rm et le problème a été résolu:

 git rm app/models/disclosure_event.rb
 

3voto

Ivan Danilov Points 5719

J'ai rencontré ce genre de situation avant avec rebase. Git détermine que vous laissez certains fichiers tels qu'ils étaient avant la fusion et pense que vous n'avez toujours pas les fusionner. Que de temps j'ai googlé et découvrez de nombreuses suggestions à faire, juste à l' git rebase --skip. Il a travaillé pour moi.

Description plus détaillée de ces cas: http://git.661346.n2.nabble.com/BUG-git-rebase-is-confuse-if-conflict-resolution-doesn-t-produce-diff-td726597.html

Problème similaire: Git rebase: les conflits de maintenir le blocage des progrès

Je ne suis pas sûr que c'est votre cas si vous avez de fusion, si.

3voto

Adam Albrecht Points 2525

J'ai essayé les 2 suggestions sans aucune chance. Et comme je ne pouvais pas le réinitialiser à HEAD, je me suis contenté de re-cloner le référentiel et de fusionner entièrement sans aucun problème. Pour ce que cela vaut, je recommande maintenant vivement p4merge over vimdiff ...

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X