Ответ 1
Используйте интерактивную перезагрузку. Например, чтобы вернуться назад 5 коммитов:
git rebase -i HEAD~5
Затем в появившемся редакторе удалите строку, содержащую фиксацию, которую вы хотите удалить.
У меня есть ведущая ветка вроде этого.
A -- B -- C -- D -- E -- HEAD
Есть ли какая-либо команда, которая удаляет одну из старых фиксаций и сохраняет остальные, скажем, commit C?
Наконец, он становится таким, как
A -- B -- D -- E -- HEAD
Я знаю, что мы можем использовать обратный патч и применять новую фиксацию с обратным патчем для удаления commit C, но древовидная структура не будет настолько прозрачной и выглядит громоздкой, т.е.
A -- B -- C -- D -- E -- C(apply reverse patch) -- HEAD
Кто-нибудь знает?
Используйте интерактивную перезагрузку. Например, чтобы вернуться назад 5 коммитов:
git rebase -i HEAD~5
Затем в появившемся редакторе удалите строку, содержащую фиксацию, которую вы хотите удалить.
Интерактивная перезагрузка работает, но для этого нужно выполнить только одну команду:
git rebase --onto B C
По-прежнему см. комментарии к ответу "интерактивная перебаза". Они также применяются здесь.