Если это ваш личный проект, т. Е. Никто пока что не получил от master
, я бы предложил сбросить или перебазировать вместо возврата (что, как следствие, создает новые коммиты).
Если вас не волнует материал, представленный этими 20 коммитами, и вы просто хотите избавиться от них (вот как я понял ваш вопрос), тогда я пойду с
git reset --hard HEAD~21
, а затем git push -f origin master
.
Если вы делаете , заботитесь о 19 из 20 этих коммитов, и вы уверены, что внесенные ими изменения совершенно не связаны с этимодин «который ломает все», я бы пошел на
git rebase --interactive HEAD~21
, который перечислит все 20 коммитов. Измените pick
на drop
перед «виновным» принятием и сохранением. Это удалит этот коммит из истории. Позаботьтесь о конфликтах слияния (если они есть) и продолжайте перебазирование. После того, как все будет сделано, вам нужно будет принудительно нажать, поскольку это также изменит историю ветвления.