3 ответов:
и
git merge --squashиgit rebase --interactiveможет произвести" раздавленный " коммит.
Но они служат разным целям.произведет сжатую фиксацию в целевой ветви, не отмечая никаких отношений слияния.
(Примечание: он не производит фиксацию сразу: вам нужно дополнительноеgit commit -m "squash branch")
Это полезно, если вы хотите полностью выбросить исходную ветвь, перейдя от (схема взята из поэтому вопрос):git checkout stable X stable / a---b---c---d---e---f---g tmpto:
git merge --squash tmp git commit -m "squash tmp" X-------------------G stable / a---b---c---d---e---f---g tmpи затем удалить
tmpфилиала.воспроизводит некоторые или все ваши коммиты на новой базе, позволяя вам сквош (или совсем недавно "исправить", см. Это поэтому вопрос), идущих прямо:
git checkout tmp git rebase -i stable stable X-------------------G tmp / a---bесли вы решите раздавить все коммиты
tmp(но, вопрекиmerge --squash, вы можете выбрать переиграйте одних, а других раздавите).таким образом, различия:
mergeне трогает исходную ветвь (tmpздесь) и создает один коммит, где вы хотите.rebaseпозволяет перейти на той же ветке источника (все равноtmp) С:
- новая база
- более чистая история
Merge squash объединяет дерево (последовательность коммитов) в один коммит. То есть, это кабачки все изменения, внесенные в n коммиты в один коммит.
перебазирование-это повторное базирование, то есть выбор новой базы (родительской фиксации) для дерева. Возможно, ртутный термин для этого более ясен: они называют это трансплантацией, потому что это просто: выбор новой земли (родительская фиксация, корень) для дерева.
при выполнении интерактивной перебазирования, вы учитывая возможность сквоша, выбора, редактирования или пропуска коммитов, которые вы собираетесь перебазировать.
надеюсь, что это было ясно!
слияние коммитов: сохраняет все коммиты в вашей ветви и чередует их с коммитами на базовой ветви
слияние сквош: сохраняет изменения, но опускает отдельные коммиты из истории
Rebase: это перемещает всю ветвь функции, чтобы начать на кончике главной ветви, эффективно включая все новые коммиты в master
больше на здесь



Comments