Выбор ответа Junior Git спрашивают часто обновлено
Как отменить коммит в общей ветке
Вопрос
Коммит с багом уже в main на сервере, после него коллеги запушили ещё несколько коммитов. Как правильно отменить именно этот коммит?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: git revert <hash и обычный push. revert создаёт новый коммит с обратными изменениями.
Варианты ответа
git revert <hash>и обычный pushправильный ответgit reset --hard <hash>~1иgit push --forcegit commit --amendи push- Удалить коммит через
git rebase -iиgit push --force
Разбор
revert создаёт новый коммит с обратными изменениями. История не переписывается, коллегам не нужно ничего чинить.
reset --hardна коммит до бага выкинет и все коммиты коллег после него, а force push перепишет общую историю.--amendменяет только последний коммит, а он чужой и уже не тот.rebase -iс удалением коммита тоже переписывает общую историю и требует force push.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.