web-dev-qa-db-fra.com

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

J'ai eu environ 12 conflits de fichiers lorsque j'ai fusionné des branches. J'ai corrigé manuellement tous les conflits et mis en scène les fichiers. Mais maintenant, lorsque j'essaie de valider, il indique que l'un des fichiers n'est pas 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 "divulgation_event.rb", sous Changes to be committed. Il ne montre aucun fichier comme non organisé. J'ai essayé à plusieurs reprises d'ajouter le fichier, mais il ne semble rien faire. Si j'ouvre le fichier, tout va bien.

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

43
Adam Albrecht

Je ne peux pas te dire ce qui ne va pas, mais tu pourrais essayer

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

puis validez.

59
Ryan Stewart

J'ai eu exactement la même situation aujourd'hui sur les succursales fusionnant (pas rebasant).

Je repère, sur ce fichier, des erreurs, dans votre cas:

U      app/models/disclosure_event.rb

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

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

git rm app/models/disclosure_event.rb
13
alexkasko

Définissez la télécommande sur Origin et la branche sur master, et dites que vous avez déjà extrait master, essayez les solutions suivantes:

 git fetch Origin 
 git reset --hard Origin/master 

Il définira la branche actuelle et la pointera sur HEAD de la branche distante.

7
Md. Ranju Mia

J'ai rencontré une telle situation auparavant avec rebase. Git détermine que vous laissez certains fichiers tels qu'ils étaient avant la fusion et pense que vous ne les avez toujours pas fusionnés. Cette fois, j'ai fait une recherche sur Google et j'ai découvert de nombreuses suggestions à faire git rebase --skip. Ça a marché pour moi.

Description plus détaillée d'un tel 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 bloquent la progression

Je ne suis pas sûr que ce soit votre cas si vous avez une fusion, cependant.

3
Ivan Danilov

J'ai essayé les 2 suggestions sans aucune chance. Et je ne pouvais pas le réinitialiser à HEAD, alors j'ai juste re-cloné le référentiel et fait la fusion complète et je n'ai eu aucun problème. Pour ce que ça vaut, je recommande maintenant fortement p4merge sur vimdiff ...

3
Adam Albrecht