Как избежать тонны коммитов при отладке приложения 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
.