Манипулирование историей очень распространено среди разработчиков, которые регулярно работают с Git. Действительно, разработчикам часто приходится удалять коммиты из истории Git. К счастью, Git предоставляет множество команд, позволяющих сделать эту операцию возможной.
Давайте приступим 😎.
Прежде чем манипулировать историей Git, убедитесь, что ваш рабочий каталог не содержит никаких изменений, с помощью команды git status .
Чтобы удалить коммиты с удаленного сервера, сначала вам необходимо удалить их из локальной истории.
Если коммиты, которые вы хотите удалить, помещены в начало вашей истории коммитов, используйте команду git reset --hard
с объектом HEAD
и количеством коммитов, которые вы хотите удалить.
git reset --hard HEAD~1
Эта команда удалит последний коммит .
git reset --hard HEAD~3
Эта команда удалит последние три коммита .
Вы также можете удалить определенный коммит, используя хеш коммита, например:
git reset --hard <hash>
Однако если вы хотите удалить непоследовательные фиксации, вам нужно будет использовать интерактивное перебазирование.
git reflog
.git rebase -i <hash>
.git rebase --continue
или начните заново, прервав перезагрузку .Чтобы удалить коммиты с удаленного компьютера, вам нужно будет отправить локальные изменения на удаленный компьютер с помощью команды git push .
git push origin HEAD --force
Поскольку ваша локальная история отличается от удаленной истории, вам необходимо использовать опцию force
.
Как видите, Git позволяет легко удалять коммиты с удаленного сервера.
Однако вам нужно быть осторожным при использовании команды git push
с опцией force
, потому что вы можете потерять прогресс, если не будете осторожны.
Спасибо за чтение!