Каждый раз, работая над каким-то багом или новым функционалом, мы создаем отдельную ветку.
Обычно, в таких ветках делают множество коммитов, особо не уделяя много внимания написанию хороших комментариев, и просто комментируя изменения чем-то вроде «work in progress» или просто «WIP».
Перед тем, как сделать merge такой ветки в мастер, рекомендуется объединить все коммиты в один и сопроводить единственным комментарием резюмирующим изменения.
Далее я покажу, как объединить коммиты в Git при слиянии ветки с мастер.
Дельный Совет: Сделали опечатку? Без паники! Сообщение последнего коммита можно легко изменить! Читать далее →
Объединение и Слияние Коммитов в Git
Выполните следующие команды в Git, чтобы объединить все коммиты ветки в один коммит и сделать merge этой ветки в мастер, сопроводив единственным комментарием:
$ git checkout master $ git merge --squash <branch_name> $ git commit
Если вы работаете с удаленным Git-репозиторием, не забудьте сделать git push
:
$ git push
Объединение Коммитов в Ветке
Также можно объединить все коммиты в ветке следующим образом:
$ git checkout <branch_name> $ git reset --soft master $ git add -A $ git commit
В этом случае возможно потребуется форсировать push ветки:
$ git push -f
В противном случае вы можете получить следующую ошибку:
error: failed to push some refs to ‘https://path/to/repo.git’
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: ‘git pull …’) before pushing again.
hint: See the ‘Note about fast-forwards’ in ‘git push —help’ for details.