Як я можу перезавантажити першу команду?


130

Я git initстворив свіжий репо, потім зробив три коміти. Тепер я хочу повернутись до бази даних, щоб повернутись назад та внести зміни до свого першого зобов’язання, але якщо я git rebase -i HEAD~3це виконую, скаржиться! Якщо я спробую те ж саме, HEAD~2тоді він якось працює, але дозволяє лише змінити два останні коміти.

Як я можу посилатись на "вчинити перед тим, як було здійснено будь-які зобов'язання", або повернутись назад і вставити порожню комісію?


4
Можливий повтор редагування кореневого
Ліам

Відповіді:


218

Найпростіший спосіб - з досить недавнім git (це вже давно, тому у вас повинно бути таке):

git rebase -i --root

Інший простий спосіб, як зазначив twalberg у коментарі , - це використовувати git checkout --orphanдля налаштування, щоб зробити нову кореневу команду, на яку ви можете скопіювати старі коміти. (Це rebase -i --rootвсе-таки все-таки робиться всередині.)


Використовуючи, git rebase -i --rootя отримую помилку error: cannot 'fixup' without a previous commitпри спробі
скинути

Що саме ви редагуєте в інструкційному аркуші? У вас повинен бути список комітетів із найстарішими вгорі і командами pickдля кожного. Змініть другий pick на squashабо fixup, випишіть аркуш інструкцій, вийдіть із редактора, і Git повинен виконати роботу.
Торека
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.