Kiedyś git init
tworzyłem nowe repozytorium, a następnie wykonałem trzy zatwierdzenia. Teraz chcę zmienić bazę, aby wrócić i poprawić moje pierwsze zatwierdzenie, ale jeśli to zrobię git rebase -i HEAD~3
, narzeka! Jeśli spróbuję tego samego, HEAD~2
to trochę działa, ale pozwala mi tylko zmienić kolejność dwóch ostatnich zatwierdzeń.
Jak mam się odnieść do „zatwierdzenia przed wystąpieniem jakichkolwiek zatwierdzeń” lub cofnąć się i wstawić pusty zatwierdzenie?
git
git-rebase
lxs
źródło
źródło
Odpowiedzi:
Prosty sposób, z dostatecznie niedawnym gitem (ten był niedostępny od dawna, więc powinieneś to mieć):
Innym prostym sposobem, jak zauważył twalberg w komentarzu , jest
git checkout --orphan
skonfigurowanie nowego zatwierdzenia roota, do którego można skopiować stare zatwierdzenia. (To i takrebase -i --root
kończy się wewnętrznie).źródło
git rebase -i --root
Dostaję błąderror: cannot 'fixup' without a previous commit
podczas próbypick
dla każdego z nich. Zmień drugąpick
na albosquash
albofixup
, napisz instrukcję, wyjdź z edytora, a Git powinien wykonać zadanie.