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