У вас есть два варианта отмены изменений:
- создать новый коммит, который применяет обратные изменения. Это предпочтительный вариант, поскольку он не меняет историю в общедоступном репозитории
- Удалите коммиты и принудительно нажмите их.
Первый вариант может быть достигнут с помощью git revert
git-revert - отменить некоторые существующие коммиты
При наличии одного или нескольких существующих коммитов отменить изменения, внесенные соответствующими патчами, и записать некоторые новые коммиты, в которых они записаны.
Примером будет git revert -n HEAD~5..HEAD
. Эта команда создает 5 новых коммитов, каждый из которых отменяет один из 5 последних коммитов текущей извлеченной ветви.
Второй вариант - фактически удалить коммиты. Обратите внимание, что это меняет историю в хранилище. Так что любой, кто уже внес изменения, вероятно, будет довольно удивлен, и все может быстро запутаться. Тем не менее, вы можете сделать
git reset --hard HEAD~5
git push --force
Первая команда уничтожит все незафиксированные изменения в вашей текущей рабочей копии. и сбросьте ваш локальный репозиторий в состояние текущей фиксации HEAD - 5. Вторая команда принудительно отправит на удаленный по умолчанию пульт (т. Е. GitHub). Там любые изменения, отличающиеся от вашего текущего локального репозитория, будут перезаписаны.
Еще раз предупреждение: если вы действительно не знаете, что делаете, не используйте эту опцию, так как это может привести к потере данных для вас или других лиц, если не все сделано правильно. Использование первый вариант вместо этого, поскольку он будет прозрачно удалять изменения, но без неприятных побочных эффектов переписывания истории.