Erreur de fusion GIT "La validation n'est pas possible car vous avez des fichiers non fusionnés"

172

donc j'ai oublié de tirer mon code avant de le modifier et puis quand j'ai validé le nouveau code et essayé de pousser, j'ai obtenu l'erreur push n'est pas possible, à ce moment-là j'ai fait un "git pull" qui a mis en évidence certains fichiers avec conflit. J'ai supprimé les conflits mais je ne sais pas quoi faire à partir d'ici.

J'ai essayé à git commitnouveau, mais il est dit "La validation n'est pas possible car vous avez des fichiers non fusionnés"

Kiarash
la source

Réponses:

245

Si vous avez résolu les conflits avec lesquels vous devez ajouter les fichiers à la scène git add [filename], validez normalement.

jonnystoten
la source
2
Et si ce sont les fichiers sur lesquels je n'ai pas travaillé? Dois-je encore les ajouter? Quelle est la meilleure façon d'y faire face?
R11G
1
J'ai dû faire cela pour un fichier qui a été supprimé dans une branche que je fusionnais dans la branche actuelle. Git l'a signalé comme un conflit, j'ai donc dû supprimer le fichier localement git add the_filepour valider la fusion.
Brendon Muir
comment trouver la liste des conflits?
polina-c
7
git statusvous montrera les fichiers qui ont des conflits
jonnystoten
@jonnystoten merci pour votre commentaire! J'ai utilisé git statuset trouvé un fichier qui disait both deleted. L'interface utilisateur WebStorm n'a pas montré le problème, mais a simplement indiqué qu'elle ne pouvait pas valider une fusion. Résolu!
Yuri Predbourski
52

Vous devez faire deux choses. Ajoutez d'abord les modifications avec

git add .
git stash  

git checkout <some branch>

Cela devrait résoudre votre problème tel qu'il m'a été résolu.

Prabhakar Undurthi
la source
Il n'est pas nécessaire que git add. suffirait
Rais Iqbal
3
C'est aussi un gros frappeur si vous ne voulez pas git addtous vos fichiers de travail
courtsimas
11

Vous pouvez utiliser git stashpour enregistrer le référentiel actuel avant de faire la validation que vous souhaitez effectuer (après avoir fusionné les modifications du référentiel en amont avec git stash pop). J'ai dû faire ça hier quand j'ai eu le même problème.

muman
la source
2

Cette erreur se produit lorsque vous résolvez les conflits mais que le fichier doit encore être ajouté dans la zone de scène. git add. le résoudrait. Ensuite, essayez de valider et de fusionner.

Priyanka Arora
la source
0

J'ai eu un problème similaire qui se résumait à la suppression de fichiers sous "chemins non fusionnés"

Ces fichiers ont dû être supprimés en utilisant git rm

Yann VR
la source
0

Donc, à partir de l'erreur ci-dessus. Tout ce que vous avez à faire pour résoudre ce problème est de rétablir votre code. ( git revert HEAD) puis git pullrefaites vos modifications, puis à git pullnouveau et a pu valider ou fusionner sans erreur.

appdesigns
la source
0

Depuis git 2.23 (août 2019), vous avez maintenant un raccourci pour le faire: git restore --staged [filepath] . Avec cette commande, vous pouvez ignorer un fichier en conflit sans avoir besoin de l'ajouter et de le supprimer.

Exemple:

> git status

  ...
  Unmerged paths:
    (use "git add <file>..." to mark resolution)
      both modified:   file.ex

> git restore --staged file.ex

> git status

  ...
  Changes not staged for commit:
    (use "git add <file>..." to update what will be committed)
    (use "git restore <file>..." to discard changes in working directory)
      modified:   file.ex

Macabeus
la source