Страницы

Поиск по вопросам

четверг, 2 января 2020 г.

Как работает git merge --squash?

#git #git_merge


Заметил что иногда вместо git pull --rebase делаю так

git checkout remote_my/branch_my
git merge --squash branch_my
git commit ...


В чем смысл такого кода
    


Ответы

Ответ 1



Из Git Reference - merge: --squash Обрабатывает рабочую область и индекс таким образом, как будто было произведено слияние (merge), но при этом не делает фактического коммита, не перемещает указатель HEAD и не записывает ничего в $GIT_DIR/MERGE_HEAD. Это позволяет сделать единый коммит к текущей ветке, содержащий все те же изменения, которые были бы применены при обычном слиянии с веткой (или несколькими, в случае сложного слияния). Как это работает git checkout master git merge --squash feature123 git commit -m'merged feature #123' Все изменения в ветке feature123 становятся одним коммитом в ветке master. Это удобно, если ветка содержит много незначительных коммитов, которые «неинтересны» для общей истории. После такой операции история ветки останется «плоской», так же как после git pull --rebase.

Комментариев нет:

Отправить комментарий