La fusion Git n'est pas possible car j'ai des fichiers non fusionnés
GIT continue de me confondre avec ses avertissements d'erreurs inutiles :( Ce seul mérite vraiment un prix:
"git merge n'est pas possible parce que vous avez désinstallé les fichiers"
Ma situation: Ma branche principale sur github a été éditée (directement dans le navigateur) tandis que ma branche principale locale a également été éditée.
bêtement, j'ai supposé que vous pourriez simplement fusionner les deux versions et être fait avec, mais hélas, je ne peux pas fusionner-parce que mes fichiers ne sont pas fusionnés.
git merge remote/master
résultats
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.
donc, après avoir ajouté et engagé le changement local et après avoir essayé de fusionner à nouveau, j'obtiens:
merge: remote/master - not something we can merge
il est clair que je manque quelque chose d'essentiel ici... Ai-je une mauvaise idée de ce que signifie la fusion? Comment puis-je résoudre ce problème d'avoir une branche master distante / master local différente?
3 réponses
Le message d'erreur:
fusion: distance/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 "distance" nommé "à distance". Vous avez une "distance" nommé "origine".
pensez à "remotes" comme alias pour l'url de votre serveur Git. master
est votre version locale de la branche. origin/master
est la dernière version de master
depuis votre serveur Git que vous avez récupéré (téléchargé). fetch
est toujours sûr car il ne mettra à jour que la version" origine/x " de vos branches.
Donc, pour obtenir votre master
branche de nouveau dans la synchronisation, d'abord télécharger le contenu le plus récent à partir du serveur git:
git fetch
puis, effectuer la fusion:
git merge origin/master
...Mais, peut-être la meilleure approche serait:
git pull origin master
pull
commande fetch
et merge
pour vous en une seule étape.
j'ai eu le même défi à plusieurs reprises il y a quelques fois, ce problème se produit surtout lorsque vous essayez de tirer à partir du dépôt distant et que vous avez des fichiers sur votre instance locale en conflit avec la version distante, si vous utilisez git à partir d'un IDE tel que intelliJ, vous serez invité et autorisé à faire un choix si vous voulez conserver vos propres modifications ou si vous préférez que les modifications dans la version distante écrasent les vôtres. Si vous ne faites pas de choix, vous tombez dans ce conflit. tout ce que vous devez faire est d'exécuter:
git merge --abort # Le conflit non résolu sera effacé
Et vous pouvez continuer ce que vous faisiez avant la pause
j'ai rencontré le même problème et je n'ai pas pu décider entre rire ou me fracasser la tête sur la table quand 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 résoudre les conflits là-bas d'abord!"
Vous avez tenté une fusion et un conflit s'est produit. Ensuite, git reste dans l'état de fusion et si vous voulez résoudre le fusionner avec d'autres commandes git pense que vous voulez exécuter une nouvelle fusion et donc, il vous dit que vous ne pouvez pas faire ce à cause de vos fichiers non fusionnés actuels...
Vous pouvez quitter cet état avec git merge --abort
et maintenant, essayez d'exécuter d'autres commandes.
dans mon cas j'ai essayé une traction et j'ai voulu résoudre les conflits à la main quand l'erreur s'est produite...