Ответ 1
В squash
слияние, вы создали коммит, который имеет эффект, но на самом деле не является слиянием.
То есть, у рабочего дерева есть изменения, которые вы ожидаете, но метаданные не имеют особого значения: критически, у коммита нет двух родителей (один на master
и один на alt
), и поэтому последующее слияния не могут определить последнего общего предка.
Полезные применения squash
- слияние полностью завершенной ветки функций на
master
. Я буду накапливать любую полезную информацию в сжатом коммите, но специально не хочу, чтобы эта инкрементальная история развития этой функции загрязняла временную шкалуmaster
commit. - объединение нескольких независимых функций (или вкладов от разных разработчиков) на одну и ту же ветку интеграции, без сохранения их инкрементных историй. Я мог бы переустановить их все вместе, а затем использовать
rebase -i
для раздачи своих коммитов, но это проще.
Бесполезное использование squash
Любое слияние, в котором вы хотите сохранить историю метаданных истории и родословной, например, в любое время, когда вы хотите, чтобы повторяющиеся рекурсивные слияния работали правильно, в частности, что пытается сделать OP.
squash
просто не является хорошим по умолчанию, поэтому он не является стандартным.