Sobes.tech
Назад к вопросам
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 — для упорядочивания и сжатия истории нескольких коммитов.