44 votes

Pull n'est pas possible car vous avez des fichiers non fusionnés, git stash ne fonctionne pas. Je ne veux pas commiter

Je veux juste tirer. J'ai des changements à ignorer, mon Gemfile et mes fichiers Gemlock et je serais heureux de les écraser et de simplement tirer. J'ai essayé de cacher mes modifications, mais cela n'a pas fonctionné pour moi. Que dois-je faire ?

git pull
M   Gemfile
U   Gemfile.lock
Pull 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, or use 'git commit -a'.
~/projects/sms/apps2/apps2_admin(apps2)$ git stash save "saved"
Gemfile.lock: needs merge
Gemfile.lock: needs merge
Gemfile.lock: unmerged (4ea16799dba7bfe1db28adecf36dee1af5195c1a)
Gemfile.lock: unmerged (e77439c9f86d1d0eda7ae0787e3e158f90959e68)
Gemfile.lock: unmerged (d690d3860db1aa8e46c1bb2f4de3e52a297b5c26)
fatal: git-write-tree: error building trees
Cannot save the current index state
~/projects/sms/apps2/apps2_admin(apps2)$ git pull
M   Gemfile
U   Gemfile.lock
Pull 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, or use 'git commit -a'.

79voto

Ricardo Peres Points 1492
git fetch origin
git reset --hard origin/master
git pull

Explication :

  • Fetch téléchargera tout depuis un autre dépôt, dans ce cas, celui marqué comme "origin".
  • La réinitialisation va supprimer les changements et revenir à la branche mentionnée, "master" dans le dépôt "origin".
  • Pull va juste tout récupérer d'un dépôt distant et l'intégrer.

Voir la documentation à l'adresse suivante http://git-scm.com/docs .

44voto

Amber Points 159296

Vous pouvez utiliser git checkout <file> pour vérifier la version validée du fichier (en abandonnant vos modifications), ou git reset --hard HEAD pour jeter tous les changements non validés pour tous les fichiers.

2voto

max Points 411

J'ai essayé les deux et j'obtiens toujours des échecs dus à des conflits. À bout de patience, j'ai cloné master dans un autre emplacement, j'ai tout copié dans l'autre branche et je l'ai commité. ce qui m'a permis de continuer. L'option "-X theirs" aurait dû le faire pour moi, mais elle ne l'a pas fait.

git merge -s recursive -X theirs master

erreur : "fusionner" n'est pas possible car vous avez des fichiers non fusionnés. hint : Réparez-les dans l'arbre de travail, hint : et ensuite utilisez 'git add/rm' comme hint : approprié pour marquer résolution et faire un commit, hint : ou utilisez 'git commit -a'. fatal : Sortie à cause d'un conflit non résolu.

1voto

chacham15 Points 3966

J'ai eu la même erreur et je l'ai résolue avec : git merge -s recursive -X theirs origin/master

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