Git-разница между командами amend и squash

в чем разница между командами amend и squash? Я попробовал оба и обнаружил, что оба делают то же самое для правильного управления.

2 ответов


в Git коммиты редко уничтожаются, они просто становятся сиротами или отдельно стоящее, что означает, что они не указаны или достижимы ссылкой, такой как ветвь или тег.

"изменить" и "давя" are подобные понятия, хотя.

как правило, О внесении изменений - это одна операция фиксации, в которой вы хотите объединить работу, которую вы поставили с фиксацией головы. Это может быть очень удобно, если вы только что создали зафиксируйте и осознайте, что вам нужно добавить к нему некоторое содержимое. Просто вспомните свою команду commit и используйте .

давя - это более абстрактное понятие. Я бы сказал, что поправка-это разновидность сквоша. Всякий раз, когда вы объединяете коммиты, вы можете сказать, что вы их раздавливаете. Если вы работали над веткой некоторое время и сделали 5 коммитов, которые вместе должны быть 1 коммитом, вы можете интерактивно перебазировать, чтобы раздавить их вместе.

в Git есть несколько способов изменить / сквош, но все они сосредоточены вокруг концепции организации вашей истории фиксации (что означает переписывание истории ветви) в этом духе, чтобы облегчить grok.


amend изменяет только последнюю фиксацию.

squash - это как слияние нескольких коммитов в один коммит.

только для одного коммита их эффекты могут выглядеть одинаково.

https://git-scm.com/book/en/v2/Git-Tools-Rewriting-History