Как я `git rebase -i` и предотвращает "Вы просили внести изменения в последнее коммит, но это сделает его пустым".?

Я хочу запустить git rebase -i some-hash.

Когда я запустил его, я получаю сообщение об ошибке:

Вы попросили внести поправки в последнее совершение, но это сделало бы это пустой. Вы можете повторить свою команду с помощью --allow-empty или вы можете полностью удалите фиксацию с помощью git reset HEAD ^ ".
[...]
Не удалось применить [...]

Эта ошибка кажется конкретной для одного коммита, поскольку --allow-empty не является вариантом, который я могу передать для rebase.

По-видимому --keep-empty Я имею возможность передать значение git rebase, но, похоже, проблема не устранена.

Как я могу переустановить и сообщить git, не волнуйтесь, если фиксация в rebase не имеет эффекта?

Ответ 1

Похоже на запуск:

git commit --allow-empty
git rebase --continue

Создает 2 раздавленных коммитов вместо одного. Выполнение git rebase -i some-hash позволяет мне скворовать два новых коммита в один.

Ответ 2

Если вы не перезагружаете одно коммит и не сталкиваетесь с той же проблемой, причиной является окончательный результат вашего перезагрузки - это пустая фиксация.

Предполагая, что вы не хотите совершать пустую фиксацию, предположим, что у вас есть эти две фиксации:

commit 1
commit 2

И вы получаете ошибку, когда хотите объединить эти две коммиты (например, git rebase -i HEAD~2), исправление находится в reset этих двух коммитах, выполнив следующую команду два раза:

git reset HEAD^