I am a Developer from Montreal, Canada 🇨🇦. I specialize in React & TypeScript development.
Walkthroughs, tutorials, guides, and tips. This story will teach you how to do something new or how to do something better.
The code in this story is for educational purposes. The readers are solely responsible for whatever they build with it.
Манипулирование историей очень распространено среди разработчиков, которые регулярно работают с 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
, потому что вы можете потерять прогресс, если не будете осторожны.
Спасибо за чтение!