2015-01-07 30 views
2

很多时候我正在开发一个应用程序,我会添加日志语句,有时如果它有助于调试,die()断言等等。本地测试,我没有把任何东西都交给git。当我想通过功能分支中的提交将其转移到临时环境中时,我必须使用一堆调试类型代码来提交它们。最后,当我准备将分支合并到发行版分支时,我希望将这些众多的提交几乎清理/编译为一个提交,并且就好像调试语句不在那里一样,因为我最终提交了一个清理它们。清理git中的调试提交

是否有可能重写git历史记录,将所有这些提交合并到一个干净的提交中,一旦我完成了我的特性分支?

回答

1

只要您尚未发布的更改(git push),你可以放心地改写历史与git rebase

您可以git rebase -i <commit>~1其中commit是第一个从那里你要开始清理,并在交互模式提交,你可以squash承诺以某种方式合并他们到一个大提交。你可以在这里找到关于这个主题的很好的文档:7.6 Git Tools - Rewriting History

另外,take a look into this,是一个小型的钩子,我没有阻止调试语句被提交,也许你觉得它很有用。

编辑:我看到你提到你需要将你的修改移到临时区域。如果这意味着推动,那么重写历史记录可能会有问题,除非没有其他人拉你的改变。重写历史会改变你的提交“沙”,所以团队的其他成员可能会以重复的提交或冲突结束。另一方面,如果你推到某个地方,但只有你使用的是暂存区域,那么你可以在本地重写你的历史记录,然后再次用git push -f再次推送。它会用你的本地修改更新分支。

希望这会有所帮助!