Раньше я git init
создавал новое репо, а затем сделал три фиксации. Теперь я хочу выполнить переустановку, чтобы вернуться и исправить свою первую фиксацию, но если я сделаю git rebase -i HEAD~3
это, он пожалуется! Если я попробую то же самое, HEAD~2
то это вроде как работает, но позволяет мне переставлять только последние два коммита.
Как мне сослаться на «фиксацию до того, как были какие-либо фиксации» или вернуться и вставить пустую фиксацию?
git
git-rebase
LXS
источник
источник
Ответы:
Простой способ, с достаточно свежим git (его уже давно нет, так что оно должно быть у вас):
Другой простой способ, как отметил в комментарии Твалберг , - это использовать
git checkout --orphan
для настройки для создания нового корневого коммита, поверх которого вы можете скопировать старые коммиты. (Вrebase -i --root
любом случае это то , что происходит внутри компании.)источник
git rebase -i --root
Я получаю сообщение об ошибкеerror: cannot 'fixup' without a previous commit
при попытке раздавить вторую фиксацию (мне просто нужна первая)pick
для каждого из них. Измените второе значениеpick
наsquash
илиfixup
, запишите инструкцию, выйдите из редактора, и Git выполнит свою работу.