Как избежать тонны коммитов при отладке приложения Heroku

При попытке отсортировать ошибки с приложениями на Heroku, я обычно заканчиваю связкой Git коммит, связанной с процессом исправления ошибок, так как мне нужно зафиксировать обновления, чтобы нажать на Heroku. Существуют ли какие-либо умные способы очистки этих коммитов до перехода на основное разделяемое репо для проекта?

Ответы

Ответ 1

Создайте новую ветку при начале отладки (git checkout -b debugging или аналогичный), а затем сделайте все свои фиксации там, нажав их на Heroku вместо вашего хозяина через git push heroku debugging:master.

Затем, когда вы устранили проблему, вы можете вырезать свои отладочные изменения в одну транзакцию и объединить их обратно в master:

git checkout master
git merge debugging --squash
git branch -D debugging

Есть много других способов сделать это, все сводится к тому, что вы найдете наиболее логичным.

Ответ 2

Вы можете сделать git rebase -i <commit_before_fixing_commits> и отредактировать/сквош/удалить коммиты, а затем нажать на Heroku.

Ответ 3

Вы действительно не хотите очищать эти коммиты. Вместо этого вы должны заключить их в коммиляцию слиянием:

  • Проверьте мастер - git checkout master
  • Создайте ветку для своей темы - git checkout -b my-cool-bugfix
  • Выполняйте работу в своей ветке
  • Когда все готово, git checkout master снова, выполните слияние без перемотки вперед. Это важно: принудительная перемотка вперед с опцией --no-ff означает, что фиксация слияния всегда будет создана. В этом случае команда будет git merge --no-ff my-cool-bugfix.
  • Теперь у вас есть одно комманда слияния на хозяине, который инкапсулирует все ваши фиктивные коммиты, но сохраняет историю фиксации, чтобы Git инструменты анализа истории не прерывались.
  • Когда вы протестировали исправление, git push heroku.