Junior — Middle
Erklären Sie die Unterschiede zwischen den Git-Befehlen amend und squash im Kontext der Verwaltung der Commit-Historie
sobes.tech KI
Antwort von 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 — для упорядочивания и сжатия истории нескольких коммитов.