Как избежать множества коммитов при отладке приложения Heroku - PullRequest
14 голосов
/ 13 декабря 2011

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

Ответы [ 3 ]

17 голосов
/ 13 декабря 2011

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

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

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

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

4 голосов
/ 13 декабря 2011

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

0 голосов
/ 13 декабря 2011

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

  • Проверить мастер - 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.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...