59 votes

fatal : Impossible d'ouvrir le fichier .git/rebase-merge/done en lecture : Aucun fichier ou répertoire de ce type

J'allais faire un rebase pour effacer mon dernier commit mais je ne voulais pas finir donc j'ai quitté. (Je réalise que ce n'était probablement pas la meilleure façon de procéder, mais c'est fait) Je suppose que je l'ai mal fait parce que j'obtiens l'erreur : fatal: Could not open file .git/rebase-merge/done for reading: No such file or directory chaque fois que je cours git status . Comment puis-je me débarrasser de cette erreur afin de pouvoir continuer à faire des livraisons ? Puis-je simplement supprimer le fichier ? Si je peux le supprimer, comment dois-je faire ?

1 votes

J'ai essayé git rm .git/rebase-merge/done et cela n'a pas fonctionné

92voto

DavidNeiss Points 3294

Avant d'effectuer les opérations suivantes, assurez-vous que stash o commit toutes les modifications non engagées, sinon vous les perdrez irrévocablement.

Ensuite, essayez de faire un git rebase --abort .

10 votes

ATTENTION : si vous avez des modifications non validées, cela peut les supprimer irrévocablement :( J'ai démarré ce matin, j'ai travaillé, j'ai essayé de valider et j'ai eu cette erreur ; j'ai cherché sur Google et j'ai trouvé cette réponse ; je l'ai essayée ; et ma dernière heure de travail s'est évanouie pour de bon.

0 votes

@Blisco, bravo pour la mise à jour de la réponse !

0 votes

J'essaie juste d'éviter que d'autres ne fassent la même erreur que moi ! :-)

19voto

Stefano Points 388

Stash ou commit n'ont pas fonctionné pour moi, j'ai juste créé les fichiers dont se plaignait git jusqu'à ce que ça marche !

$ git rebase --abort
error: could not read '.git/rebase-apply/head-name': No such file or directory

echo "master" > .git/rebase-apply/head-name

$ git rebase --abort
error: could not read '.git/rebase-apply/onto': No such file or directory

$ echo "develop" > .git/rebase-apply/onto

$ git rebase --abort
error: could not read '.git/rebase-apply/head': No such file or directory

$ echo "develop" > .git/rebase-apply/head

Après quoi git rebase --abort a travaillé. Les noms de branches que vous mettez dans ces fichiers doivent exister, et dans mon cas je ne me suis pas soucié de mes changements locaux, mais évidemment soyez prudent si c'est le cas.

5voto

Dimitris Baltas Points 1080

La solution de DavidN pour interrompre le rebasement est la suivante grand tant que vous n'avez pas de sans scène changements depuis le dernier rebasement vers le sud !

Si vous avez écrit du code après la tentative de rebasement, en ignorant le code could not open file .git/rebase-merge/done message,

Dans ce cas, la meilleure solution est de faire

git stash

pour enregistrer vos modifications locales et ensuite seulement pour annuler le rebasement.

Je suis sûr qu'il s'agit d'une de ces questions de stackoverflow, où les gens qui sont impatients de résoudre leur problème sans prendre en compte les implications, vont simplement exécuter la commande abort et le regretter peu de temps après.

1voto

Robert Ospara Points 11

Je viens de le faire :

git add .
git commit -m "change inter rebase"

et a pu continuer :

git rebase --continue

Non

git stash 
git rebase --abort 

nécessaires.

0voto

100rabh Points 56

Si vous effectuez cette opération à partir de Visual Studio Code, fermez le terminal/le shell en cours d'exécution, puis exécutez la commande suivante git rebase --quit

Cette opération résoudra le problème.

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