Git - 在从代码中删除之前“保存”调试语句

时间:2015-11-18 06:51:08

标签: git

我一直在为团队的项目开发一个新功能,我的代码更改涉及很多有用的地方的调试打印语句。在推送代码之前,我将删除所有这些调试打印语句,但我知道每当我回到这里时,我最终会再次调试那些调试打印语句。

因此,如果我删除调试语句,并提交。所有需要的调试语句基本上都是git diff HEAD^!。这个差异的反转(如果这甚至是一件事)将是我需要时所需的所有调试语句。有没有办法做到这一点?

或者你会建议任何其他理智的工作流来处理这种事情。

2 个答案:

答案 0 :(得分:3)

如果您的prtinf语句很容易被解析,您可以声明content filter driver,这里是清洁过滤器

http://git-scm.com/book/en/v2/book/08-customizing-git/images/clean.png

(来源:Pro Git book: Customizing Git - Git Attributes

您的clean脚本将是simple sed command skipping lines matching a pattern

这样,任何git diffgit commit都会在没有 printf调试语句的情况下考虑您的来源

答案 1 :(得分:0)

这可以通过git stash -p方法完成,您可以手动选择要藏匿的内容和不藏匿的内容,但我不建议这样做,因为此藏匿将非常脆弱你可以从master那里做一些更新(也许来自其他开发人员)你的stash将不会被干净地应用,你将不得不解决冲突,这可能比手工添加那些调试语句更麻烦。

作为替代方案,您可以使这些调试语句成为条件语句,例如,只有在您的计算机上运行代码时运行它们,如果设置了某个DEBUG环境变量或者其他内容:

puts 'my debug here' if ENV['DEBUG'] # example in ruby

这样,这些调试语句只能在您的机器上看到,而不能在生产中看到。