paint-brush
Как удалить коммиты с удаленного компьютера в Gitк@timmouskhelichvili
309,808 чтения
309,808 чтения

Как удалить коммиты с удаленного компьютера в Git

к Tim Mouskhelichvili2m2022/05/31
Read on Terminal Reader
Read this story w/o Javascript

Слишком долго; Читать

Чтобы удалить коммиты удаленно, вы можете использовать команду git reset, если ваши коммиты последовательные сверху, или интерактивную перезагрузку в противном случае. После того, как вы удалите коммиты локально, отправьте эти изменения на удаленный компьютер с помощью команды git push с опцией Force.
featured image - Как удалить коммиты с удаленного компьютера в Git
Tim Mouskhelichvili HackerNoon profile picture
0-item
1-item

Манипулирование историей очень распространено среди разработчиков, которые регулярно работают с Git. Действительно, разработчикам часто приходится удалять коммиты из истории Git. К счастью, Git предоставляет множество команд, позволяющих сделать эту операцию возможной.


Давайте приступим 😎.

Шаг 0 — Подготовка

Прежде чем манипулировать историей Git, убедитесь, что ваш рабочий каталог не содержит никаких изменений, с помощью команды git status .

Шаг 1. Удалите коммиты локально

Чтобы удалить коммиты с удаленного сервера, сначала вам необходимо удалить их из локальной истории.

1.1 Для последовательных коммитов сверху

Если коммиты, которые вы хотите удалить, помещены в начало вашей истории коммитов, используйте команду git reset --hard с объектом HEAD и количеством коммитов, которые вы хотите удалить.


 git reset --hard HEAD~1

Эта команда удалит последний коммит .


 git reset --hard HEAD~3

Эта команда удалит последние три коммита .


Вы также можете удалить определенный коммит, используя хеш коммита, например:

 git reset --hard <hash>

1.2 Для непоследовательных коммитов

Однако если вы хотите удалить непоследовательные фиксации, вам нужно будет использовать интерактивное перебазирование.


  • [ ] Найдите хеш последнего коммита, содержащий все коммиты, которые вы хотите удалить, с помощью команды git reflog .
  • [ ] Запустите интерактивную перезагрузку с помощью git rebase -i <hash> .
  • [ ] На экране редактирования найдите строки фиксации, которые хотите удалить, и удалите их.
  • [ ] Сохранить и выйти (возможно, вам придется разрешить конфликты)
  • [] Завершите интерактивную перезагрузку с помощью git rebase --continue или начните заново, прервав перезагрузку .

Шаг 2. Удалите коммиты с удаленного компьютера.

Чтобы удалить коммиты с удаленного компьютера, вам нужно будет отправить локальные изменения на удаленный компьютер с помощью команды git push .


 git push origin HEAD --force


Поскольку ваша локальная история отличается от удаленной истории, вам необходимо использовать опцию force .

Последние мысли

Как видите, Git позволяет легко удалять коммиты с удаленного сервера.


Однако вам нужно быть осторожным при использовании команды git push с опцией force , потому что вы можете потерять прогресс, если не будете осторожны.


Спасибо за чтение!