Как удалить коммиты на GitHub: несколько методов, объясненных примерами кода

Чтобы удалить коммиты на GitHub, вы можете использовать несколько методов. Имейте в виду, что удаление коммитов может иметь серьезные последствия, особенно если они были отправлены в общий репозиторий и другие люди уже основывали на них свою работу. Будьте осторожны при удалении коммитов и учтите, какое влияние это может оказать на ваш проект и участников.

Метод 1: интерактивное перебазирование

  1. Откройте терминал или командную строку.
  2. Перейдите в каталог локального репозитория с помощью команды cd.
  3. Выполните следующую команду, чтобы инициировать интерактивное перебазирование:
git rebase -i <commit-hash>

Замените хешем коммита, который вы хотите удалить. Хэш коммита можно найти с помощью git logили через интерфейс GitHub.

  1. Откроется редактор со списком коммитов. Удалите строку, соответствующую коммиту, который вы хотите удалить.
  2. Сохраните изменения и выйдите из редактора.
  3. Git выполнит перебазирование и удалит выбранный коммит.

Метод 2: принудительное нажатие
⚠️ Используйте этот метод с осторожностью, так как он может вызвать проблемы у других соавторов, если они уже извлекли ветку с коммитом, который вы хотите удалить.

  1. Откройте терминал или командную строку.
  2. Перейдите в каталог локального репозитория с помощью команды cd.
  3. Выполните следующие команды:
git checkout <branch-name>
git push origin +<branch-name>

Замените именем ветки, содержащей коммит, который вы хотите удалить.

  1. Git принудительно отправит ветку в удаленный репозиторий, исключая коммит, который вы хотите удалить.

Метод 3: Revert
Этот метод фактически не удаляет коммит, а создает новый коммит, который отменяет изменения, внесенные коммитом, который вы хотите «удалить». Это более безопасный вариант, сохраняющий историю коммитов.

  1. Откройте терминал или командную строку.
  2. Перейдите в каталог локального репозитория с помощью команды cd.
  3. Выполните следующую команду:
git revert <commit-hash>

Замените хешем коммита, который вы хотите удалить.

  1. Git создаст новый коммит, который отменяет изменения, внесенные выбранным коммитом.