Назад к вопросам
Правительство Москвы
Junior — Middle
71
Объясните различия между командами Git amend и squash в контексте управления историей коммитов
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
git commit --amend позволяет изменить последний коммит: добавить изменения, исправить сообщение или файлы. Это полезно, если вы только что сделали коммит и хотите его подправить, не создавая новый.
git rebase -i с опцией squash используется для объединения нескольких коммитов в один. Это часто делают перед публикацией ветки, чтобы очистить историю и сделать её более читаемой.
Ключевые различия:
amendменяет только последний коммит.squashобъединяет несколько коммитов в один.
Пример:
# Исправить последний коммит
git commit --amend
# Объединить последние 3 коммита
git rebase -i HEAD~3
# В интерактивном редакторе заменить 'pick' на 'squash' для 2-го и 3-го коммитов
Таким образом, amend — для мелких исправлений последнего коммита, squash — для упорядочивания и сжатия истории нескольких коммитов.