调试Heroku应用程序时如何避免大量提交

时间:2011-12-12 20:03:56

标签: ruby-on-rails git heroku

在尝试使用Heroku上的应用程序解决bug时,我通常最终得到一些与bug修复过程相关的Git提交,因为我需要提交更新才能推送到Heroku。在推送到项目的主要共享仓库之前,有没有聪明的方法来清理这些提交?

3 个答案:

答案 0 :(得分:17)

在您开始调试(git checkout -b debugging或类似)时创建一个新分支,然后在那里进行所有提交,通过git push heroku debugging:master将它们推送到Heroku而不是主人。

然后,当您解决了问题后,您可以将调试更改压缩为单个提交并将它们合并回主服务器:

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

还有很多其他方法可以做到这一点,这一切都归结为你认为最合乎逻辑的。

答案 1 :(得分:4)

您可以执行git rebase -i <commit_before_fixing_commits>并编辑/压缩/删除提交,然后推送到Heroku。

答案 2 :(得分:0)

你真的不想清理这些提交。您想要做的是将它们封装在合并提交中:

  • 查看主人 - git checkout master
  • 为您的主题创建分支 - git checkout -b my-cool-bugfix
  • 在您的分支上完成工作
  • 准备好后,再次git checkout master,然后执行非快进合并。这很重要:使用--no-ff选项强制非快进意味着始终会创建合并提交。在这种情况下,命令将是git merge --no-ff my-cool-bugfix
  • 您现在在master上有一个合并提交,它封装了您的所有分支提交,但保留了提交历史记录,以便Git的历史分析工具不会中断。
  • 测试修复后,git push heroku