Jak przerwać interaktywną rebase, jeśli opcja --abort nie działa?

127

Wpadłem w zamieszanie dzięki interaktywnej rebase i teraz chcę ją przerwać. (tj. wróć do punktu, zanim zostałem przeniesiony do interaktywnego trybu rebase, w moim przypadku przez git pull --rebase). Sposób na to wydaje się być przez git rebase --abort, ale to nie działa:

$ git rebase --abort
error: Ref refs/heads/master is at 55b388c141b1485b1acd9e050dbeb0eb90ef2ee7 but
expected b918ac16a33881ce00799bea63d9c23bf7022d67
fatal: Cannot lock the ref 'refs/heads/master'.
Could not move back to refs/heads/master

Jak wyjść z interaktywnego trybu rebase i wyczyścić wszystkie odniesienia do niego? ( git reset --hardudaje się, ale nie wyrzuca mnie z trybu rebase).

mjs
źródło

Odpowiedzi:

83

Postaraj się postępować zgodnie z radą, którą widzisz na ekranie i najpierw zresetuj HEAD swojego mistrza do zatwierdzenia, którego oczekuje.

git update-ref refs/heads/master b918ac16a33881ce00799bea63d9c23bf7022d67

Następnie ponownie przerwij rebase.

P Shved
źródło
43
Nazywanie tego „radą” jest najbardziej niezasłużonym komplementem, jaki mogę wymyślić dla każdego, kto jest odpowiedzialny za okropny Git UX
Marco Faustinelli