git merge –squash –no-commit

  1. В начале разработки создаём ветки feature и feature_debug: git checkout master && git pull origin master && git checkout -b feature && git checkout -b feature_debug
  2. Там коммитим по чёрному, каждое изменение, отлаживаем всё по кирпичику итд, чистота коммит-месседжей, осмысленность и атомарность - на вашей совести (которую можно выкинуть).
  3. После каждого коммита деплоим и прогоняем тесты.
  4. Окончательно решаем, что всё хорошо.
  5. Складываем все изменения одним коммитом в feature: git checkout feature && git merge --squash --no-commit feature_debug
  6. Пишем осмысленный и красивый коммит-месседж по всем стайл-гайдам и всё такое.
  7. Смотрим git diff master, убеждаемся что ничего лишнего нет, всё чисто.
  8. Присылаем pull/merge request maintainer’у.
  9. ПРОФИТ!