Если вам нравится, как выглядят ваши 3c61cc9
и 821cfe8
, просто сделайте
git reset 821cfe8
Тогда эти два верхних коммита будут "удалены". и у вас будет ACDB
в вашей истории.
НО, если вы хотите, чтобы ваша история была ABCD
, удалив 821cfe8
и 12721a1
(в зависимости от того, как вы попали в текущее состояние независимо от того, запустили ли вы все эти коммиты и правила совместной работы ваших команд), вы можете попытаться перестроить свою историю следующим образом:
- извлеките самый последний коммит, который вас волнует - что бы ни было до 12721a1
- cherry выбирает каждый новый коммит, который вы хотите добавить
- сбросить ветку, чтобы указать новый "последний" коммит
Например:
$ git checkout <commit right before 12721a1>
$ git cherry-pick 0987a57 # (commit D)
$ git cherry-pick 7a5a58f # (commit C)
$ git cherry-pick dcf34cd # (commit B)
$ git cherry-pick 3c61cc9 # (commit A)
$ git checkout <branch>
$ get reset <commit you switched to 2 steps ago>
Примечание: ничего из этого технически не "удаляет" коммиты, а просто удаляет их из истории этой ветки.