J'ai réussi à créer un petit désordre dans mon dépôt git local. J'essayais de réparer un commit cassé en utilisant les instructions suivantes . Avant d'exécuter le "git commit --amend" (et après le git rebase --interactive) j'ai décidé que mes modifications étaient incorrectes et j'ai donc exécuté "git reset HEAD --hard". Pas une bonne idée, je vous dis.
Maintenant, le rebase interactif semble être "bloqué". Git affiche la branche actuelle comme (| REBASE-m). Chaque commande (cd .., ls, git rebase ...) à l'intérieur de mon référentiel donne l'erreur suivante:
cat: .git / rebase-merge / head-name: aucun fichier ou répertoire de ce type
Voici à quoi ressemble git rebase --abort:
$ git rebase --abort
cat: c:/_work/project/src/git/.git/rebase-merge/quiet: No such file or directory
cat: c:/_work/project/src/git/.git/rebase-merge/head-name: No such file or directory
cat: c:/_work/project/src/git/.git/rebase-merge/orig-head: No such file or directory
HEAD is now at 4c737fb Revert "Modified file names"
rm: cannot remove `c:/_work/project/src/git/.git/rebase-merge/done': Permission denied
rm: cannot remove directory `c:/_work/project/src/git/.git/rebase-merge': Directory
not empty
cat: .git/rebase-merge/head-name: No such file or directory
Voici le résultat de git rebase --continue:
$ git rebase --continue
cat: c:/_work/project/src/git/.git/rebase-merge/prev_head: No such file or directory
cat: c:/_work/project/src/git/.git/rebase-merge/end: No such file or directory
cat: c:/_work/project/src/git/.git/rebase-merge/msgnum: No such file or directory
cat: c:/_work/project/src/git/.git/rebase-merge/onto: No such file or directory
cat: c:/_work/project/src/git/.git/rebase-merge/quiet: No such file or directory
prev_head must be defined
cat: .git/rebase-merge/head-name: No such file or directory
Des idées? Je voudrais réinitialiser la situation à l'état où elle était avant de commencer mon opération de rebase bien pensée.
Voici comment git log --oneline montre la situation:
4c737fb Revert "Modified file names"
247ac02 Modified file names
33141e6 Message modifications
10a4a04 Modified db script
Et c'est bien.
J'utilise msysgit v1.7.0.2.
la source
git rebase --quit
travaillé pour moiRéponses:
Il semble que Git a essayé de supprimer le
.git/rebase-merge
répertoire mais n'a pas pu le supprimer complètement. Avez-vous essayé de copier ce dossier? Copiez également le.git/rebase-apply
dossier si celui-ci est présent.la source
git rebase --abort
(à partir de stackoverflow.com/a/4757777/146044 ) a fonctionné.git rebase --abort
ne fonctionnait pas)git rebase --abort
il a effacé mes modifications non mises en scène ... l'erreur a cependant disparugit rebase --abort
m'a encore donné les erreurs.git rebase --quit
travaillé pour moi.Je suis resté coincé là-dedans. J'ai créé le fichier de nom de tête, puis j'ai rencontré une autre erreur disant qu'il ne pouvait pas trouver le fichier sur, alors j'ai créé ce fichier. Ensuite, j'ai eu une autre erreur disant que je ne pouvais pas lire «.git / rebase-apply / on»: aucun fichier ou répertoire de ce type.
J'ai donc regardé la documentation de git pour le rebasage et j'ai trouvé une autre commande:
Cela m'a remis sur ma branche sans changement, et j'ai pu recommencer mon rebase, comme neuf.
la source
git rebase --quit
était-ce!--quit
travaillé.--abort
pas parce que le rebase a été annulé à mi-chemin$ git rebase --abort
Sortie:error: could not read '.git/rebase-apply/head-name': No such file or directory
Enfin, cette solution résout mon problème:git rebase --quit
git rebase --quit
m'a absolument sauvé. Mêmes symptômes que ceux décrits, mais le mien est venu après avoir essayé de faire ungit pull --rebase
, qui pour une raison quelconque a échoué. Remarque J'avais activé l'autostash (git version 2.27.0.windows.1) et VS2019 en cours d'exécution (pointé sur ce dépôt) en même temps - soupçonnez qu'une combinaison de ces éléments a gâché.J'ai eu un problème similaire en raison d'un processus zombie vim.exe. Tuer dans le Gestionnaire des tâches, suivi d'une
git rebase --abort
correction.la source
handle
commande sysinternals et j'ai vu qu'un processus (sh.exe) avait le fichier verrouillé. Utilisationpskill <pid>
fixe pour moi.Merci @Laura Slocum pour votre réponse
J'ai gâché les choses en rebasant et j'ai obtenu une tête détachée avec un
cela m'a empêché de terminer le rebasage.
La tête détachée semble contenir précisément mon état souhaité de rebase correct, alors j'ai couru
et après cela, j'ai vérifié une nouvelle branche temporaire pour la lier à la tête détachée.
En la comparant avec la branche que je voulais rebaser, je peux voir que la nouvelle branche temporaire est exactement dans l'état que je voulais atteindre. Merci
la source
Eu le même problème dans Eclipse. Impossible de Rebase => abandonner Eclipse.
L'exécution de git rebase --abort à partir de Git Bash a fonctionné pour moi.
la source
Sous Windows, si vous ne souhaitez pas ou ne pouvez pas redémarrer la machine, voir ci-dessous.
Installez Process Explorer: https://technet.microsoft.com/en-us/sysinternals/bb896653.aspx
Dans Process Explorer, Rechercher> File Handle ou DLL ...
Tapez le nom de fichier mentionné dans l'erreur (pour mon erreur, c'était 'git-rebase-todo' mais dans la question ci-dessus, 'done')
Process Explorer mettra en évidence le processus tenant un verrou sur le fichier (pour moi, c'était «grep»).
Tuez le processus et vous pourrez abandonner l'action git de la manière standard.
la source
Créez un fichier avec ce nom:
et que d'utiliser
git rebase
la source
Dans mon cas, huit
git rebase --abort
etgit rebase --continue
jette:J'ai réussi à résoudre ce problème en supprimant manuellement:
.git\rebase-apply
répertoire.la source
J'utilise
git version 2.19.2.windows.1
.la seule chose qui a fonctionné pour moi était de supprimer le
.git/rebase-apply/
répertoire et de faire un fichiergit reset --hard
.la source
Dans mon cas, c'était parce que j'avais ouvert le journal de SmartGit dans le projet Git respectif et Total Commander dans le répertoire de projet respectif. Quand j'ai fermé les deux, j'ai pu rebaser sans aucun problème.
Plus j'y pense, plus je soupçonne Total Commander, c'est-à-dire que Windows a un verrou sur le répertoire ouvert avec lequel git rebase essayait de faire quelque chose.
Conseil amical: lorsque vous essayez de réparer quelque chose, faites toujours un changement à la fois. ;)
la source
J'ai essayé toutes les étapes mentionnées ci-dessus mais rien n'a fonctionné pour moi. Enfin, le redémarrage de l'ordinateur a fonctionné pour ce problème: D
la source
Avec SublimeText 3 sous Windows, le problème est résolu en fermant simplement les fenêtres Sublime utilisées pour l'édition de validation interactive.
la source
Si vous obtenez en dessous de l'état et que le rebase ne fonctionne plus,
Puis première course,
Et puis restaurer l'état précédent de reflog,
En utilisant,
la source
Une fois que vous avez correctement rebasé X nombre de commits, la dernière commande doit être
git rebase --continue
. Cela termine le processus et quitte le mode rebase.la source
J'ai eu le même problème. J'ai utilisé l'explorateur de processus comme suggéré dans un autre article (je ne suis pas en mesure de trouver ce message) et j'ai déterminé quel processus a un verrou sur le fichier et le tuer. puis exécutez le --continue ou --abort selon les besoins
la source
Dans mon cas, après avoir testé toutes ces options et avoir toujours des problèmes, j'ai essayé
sudo git rebase --abort
et cela a tout faitla source
essayé tout le reste sauf un redémarrage, ce qui a fonctionné pour moi est
rm -fr .git/REBASE_HEAD
la source
J'utilise git dans eclipse et j'avais le même problème.
Finalement, j'ai trouvé que l'entrée de menu "Rebase ..." était temporairement transformée en sous-menu.
Équipe-> Rebase -> Abandonner
Cela a fonctionné pour moi.
la source