Попробуйте:
git reset --soft HEAD~2
git commit -m "Your new message"
git push --force
Что это делает:
- Сброс вашей текущей ветви (перемещается
HEAD
) до антивендуменной фиксации (той, что перед предпоследней, представленной HEAD~2
), но оставляет индекс и рабочее дерево. - Это позволяет повторно внести эти изменения и зафиксировать их в новом коммите.
--force
позволяет выдвинуть этот новыйсовершить и принудительно переопределить.
ПРИМЕЧАНИЕ
Поскольку другие прокомментировали ваш первоначальный вопрос, имейте в виду, что --force
, скорее всего, будет раздражать других людей, которые уже потянулипредыдущая версия этой ветки.Вы можете «сжать» эти изменения в новой ветке и опубликовать ее отдельно:
git reset --soft HEAD~2
git checkout -b my-new-clean-branch
git commit -m "Your new message"
git push -u origin HEAD
Таким образом, вам не нужно --force
ничего.