git revert создаёт новый коммит, который отменяет изменения другого коммита. git reset двигает указатель ветки назад и может менять staging area и рабочую директорию, поэтому его нужно использовать осторожнее.
git revert создаёт новый коммит, который отменяет изменения другого коммита. git reset двигает указатель ветки назад и может менять staging area и рабочую директорию, поэтому его нужно использовать осторожнее.
git revert
git revert не удаляет историю, а создаёт новый коммит с обратными изменениями. Это удобный и безопасный способ отменить уже опубликованный коммит.
git revert HEADgit reset
git reset перемещает текущую ветку на другой коммит. В зависимости от режима он может также изменить staging area и файлы в рабочей директории.
git reset --hard HEAD~1Главная разница
revert безопаснее для общей истории, потому что ничего не переписывает. reset сильнее меняет историю и чаще используется локально, пока коммиты ещё не отправлены в общий репозиторий.
Как ответить на собеседовании
git revert отменяет изменения через новый коммит, а git reset двигает указатель ветки назад и может переписать локальную историю. Для публичной истории я выбираю revert, а reset использую осторожно и в основном локально.
Оцени свой прогресс