web-dev-qa-db-fra.com

La fusion de fichiers n'est pas possible car j'ai des fichiers non fusionnés

GIT continue de me confondre avec ses avertissements d'erreur inutiles: ( Celui-ci mérite vraiment un prix:

"La fusion de git n'est pas possible parce que vous avez des fichiers non fusionnés"

Ma situation: Ma branche principale sur github a été modifiée (directement dans le navigateur), de même que ma branche principale locale.

Bêtement, je pensais que vous pouviez simplement fusionner les deux versions et en finir avec cela, mais hélas, je ne peux pas fusionner, car mes fichiers ne sont pas fusionnés. 

git merge remote/master

résulte en

error: merge is not possible because you have unmerged files.
hint: Fix them up in the work tree, and then use 'git add/rm <file>'
hint: as appropriate to mark resolution and make a commit.
fatal: Exiting because of an unresolved conflict.

Ainsi, après avoir ajouté et validé le changement local, puis essayé de fusionner à nouveau, je reçois:

merge: remote/master - not something we can merge

Il est clair que quelque chose d’essentiel me manque ici ... Dois-je avoir une idée fausse de ce que signifie "fusionner"? Comment puis-je résoudre ce problème d'avoir une autre branche maître/maître local distant?

14
Kokodoko

Le message d'erreur: 

merge: remote/master - pas quelque chose que nous pouvons fusionner

dit que Git ne reconnaît pas remote/master. C'est probablement parce que vous n'avez pas de "distante" nommée "distante". Vous avez une "distante" nommée "Origine".

Pensez à "télécommandes" comme un alias pour l’url de votre serveur Git. master est votre version de la branche extraite localement. Origin/master est la dernière version de master de votre serveur Git que vous avez récupérée (téléchargée). Une fetch est toujours sûre car elle ne mettra à jour que la version "Origin/x" de vos branches.

Ainsi, pour que votre branche master soit de nouveau synchronisée, commencez par télécharger le dernier contenu à partir du serveur git:

git fetch

Ensuite, effectuez la fusion:

git merge Origin/master

... Mais, peut-être que la meilleure approche serait:

git pull Origin master

La commande pull fera les fetch et merge pour vous en une étape.

6
Jonathan.Brink

J'ai rencontré le même problème et je ne pouvais pas décider entre rire ou me casser la tête sur la table lorsque j'ai lu cette erreur ...

Ce que git essaie vraiment de vous dire: "Vous êtes déjà dans un état de fusion et vous devez d'abord résoudre les conflits là-bas!"

Vous avez essayé une fusion et un conflit est survenu. Ensuite, git reste dans l'état de fusion et si vous voulez résoudre la fusion avec d'autres commandes, git pense que vous voulez exécuter une nouvelle fusion et vous indique que vous ne pouvez pas le faire à cause de vos fichiers non fusionnés actuels ...

Vous pouvez laisser cet état avec git merge --abort et essayer maintenant d'exécuter d'autres commandes.

Dans mon cas, j'ai essayé de tirer et je voulais résoudre les conflits à la main lorsque l'erreur se produisait ...

0
Tobias Neis

Il ya quelques fois, j’ai eu le même défi à maintes reprises. Ce problème se produit principalement lorsque vous essayez d’extraire du référentiel distant et que certains fichiers de votre instance locale sont en conflit avec la version distante, si vous utilisez git à partir d’un IDE tel que En tant qu'intelliJ, vous serez invité et autorisé à faire un choix si vous souhaitez conserver vos propres modifications ou si vous préférez que les modifications de la version distante remplacent les vôtres. Si vous ne faites pas de choix, vous tombez dans ce conflit. tout ce que vous avez à faire est de courir:

git merge --abort # Le conflit non résolu sera résolu 

Et vous pouvez continuer ce que vous faisiez avant la pause

0
Mosaku Abayomi

Une autre cause potentielle à cela (Intellij a été impliquée dans mon cas, mais je ne suis pas sûr que cela importait): essayer de fusionner les modifications d'une branche principale vers une branche d'une branche de fonctionnalité. 

En d'autres termes, fusionner "principal" en "actuel" dans l'arrangement suivant:

main
  |
  --feature
      |
      --current

J'ai résolu tous les conflits et GiT a signalé des fichiers non fusionnés et je suis resté bloqué jusqu'à ce que je passe de la fonction principale à la fonction principale, puis de la fonctionnalité au courant.

0
davidjmcclelland