Oublié “git rebase --continue” et n'a “git commit”. Comment réparer?
J'ai été la relocalisation de code dans git, j'ai eu quelques conflits de fusion. J'ai résolu les conflits et n':
git add
À ce point, j'ai oublié de faire:
git rebase --continue
J'ai continué de codage et de fait:
git commit
pour les modifications. Maintenant, je suis sur "no branch"
et ne peut pas faire:
git rebase --continue
Comment puis-je résoudre ce problème?
- ce n'
git status
dire? - # Actuellement pas sur n'importe quelle branche. rien à commettre (répertoire de travail propre)
Vous devez vous connecter pour publier un commentaire.
edit: voir la réponse ci-dessous, afin de voir si une solution plus facile pour vous. https://stackoverflow.com/a/12163247/493106
Que j'aurais du l'essayer, mais je pense que c'est ce que je ferais:
git tag temp
git rebase --abort
git rebase --continue
git cherry-pick temp
Le problème avec ceci est que votre
temp
commettre contient probablement à la fois la résolution de la fusion, et le nouveau code. Ainsi, il pourrait être difficile, mais je voudrais l'essayer et voir si cela fonctionne.Il suffit de ne
git reset --soft HEAD^
. Il déplace le pointeur de TÊTE à son parent, mais maintient le travail de l'arbre et ajoute la fusion et le changement de l'indice. Vous pouvez donc continuer de rebasage avecgit rebase --continue
comme avant.J'ai eu le même problème, et pour empirer les choses, j'ai été la relocalisation trois commits, et après la résolution de conflits sur le deuxième commit, j'ai "commis" au lieu de "rebase --continue".
Comme un résultat que j'ai eu cette git reflog
Lorsque j'ai appliqué kirikaza la solution, j'ai juste repris les tiers s'engager, et pas la seconde, qui a été problématique..
Comme vous pouvez le voir, cela commence par une extraction à partir de la remotes/origin/master direction générale et s'applique alors mes trois commits qui apparaissent comme les trois précédentes de l'opération (avant le départ) dans le reflog.
Alors, si vous voulez redémarrer à partir d'une base propre, avant cela, vous pouvez simplement réinitialiser dur pour le hachage juste avant la caisse de la rebase opération. Dans mon cas (voir l'image):
Alors vous pouvez commencer une nouvelle
git rebase
.