Видалення коміту, зробленого локально:
Ви зробили коміт і раптом зрозуміли, що хочете його позбутися. Але при цьому ви бажаєте зберегти свої зміни. Для цього виконайте:
$ git reset --soft HEAD^
HEAD^
означає «повернутися на один коміт назад від поточного HEAD». Це поверне вас у стан, який був до останнього коміту. Якщо тепер виконати git status
, ви побачите, що всі зміни залишилися, як до їхнього додавання у staged-стані.
Видалення коміту, який вже було запушено:
Це трохи складніше. Є безпечні та небезпечні способи зробити це. Деякі небезпечні способи передбачають зміну історії репозиторію та можуть створити проблеми для інших розробників, які працюють з цим же репозиторієм. Я не рекомендую такі методи.
Найбезпечніший спосіб видалити коміт з віддаленого репозиторію — зробити revert
проблемного коміту. Знайдіть хеш коміту та виконайте:
$ git revert <commit-hash>
Ця команда створить новий коміт, який відмінить зміни, зроблені в небажаному коміті. Тепер запуште ці зміни у віддалений репозиторій — і все, готово.