Je rebasais du code dans git, j'ai eu des conflits de fusion. J'ai résolu les conflits et j'ai fait:
git add
À ce stade, j'ai oublié de faire:
git rebase --continue
J'ai continué à coder et j'ai fait:
git commit
pour les changements. Maintenant je suis sur "no branch"
et je ne peux pas faire:
git rebase --continue
Comment puis-je réparer ça?
Réponses:
EDIT : Regardez également la réponse ci-dessous pour voir si c'est une solution plus simple pour vous. https://stackoverflow.com/a/12163247/493106
Je devrais 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
validation contient probablement à la fois la résolution de la fusion et le nouveau code. Cela pourrait donc être délicat, mais je l'essayerais et verrais si cela fonctionne.la source
Fais juste
git reset --soft HEAD^
. Il déplace le pointeur HEAD vers son parent mais conserve l'arborescence de travail et ajoute la modification de fusion à l'index. Vous pouvez donc continuer à rebaser avecgit rebase --continue
comme avant.la source
J'ai eu le même problème, et pour aggraver les choses, je rebasais trois commits, et après avoir résolu des conflits sur le deuxième commit, j'ai "commis" au lieu de "rebase --continue".
En conséquence, j'ai eu ce git reflog
Quand j'ai appliqué la solution de kirikaza, je viens de revenir sur le troisième commit, et non sur le deuxième, ce qui était problématique.
Comme vous pouvez le voir, le rebase commence par une vérification de la branche télécommandes / origine / maître, puis applique mes trois commits qui apparaissent comme les trois opérations précédentes (avant la vérification) dans le reflog.
Ensuite, si vous souhaitez redémarrer à partir d'une base propre, avant le rebase, vous pouvez simplement réinitialiser en dur le hachage juste avant l'extraction de l'opération de rebase. Dans mon cas (voir la photo):
Ensuite, vous pouvez commencer un nouveau
git rebase
.la source
J'avais rebasé git, corrigé des conflits, git ajouté un fichier avec des conflits et (par erreur) commis.
J'ai essayé les solutions
git reset --soft HEAD^
et lesgit reset --hard
solutions proposées, mais aucune n'a fonctionné pour moi.Cependant, juste
git rebase --abort
travaillé: cela m'a ramené avant le début du rebase avec un arbre de travail propre.la source