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

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

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

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

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

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

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

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

  • 看看master – 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