我一直在为团队的项目开发一个新功能,我的代码更改涉及很多有用的地方的调试打印语句。在推送代码之前,我将删除所有这些调试打印语句,但我知道每当我回到这里时,我最终会再次调试那些调试打印语句。
因此,如果我删除调试语句,并提交。所有需要的调试语句基本上都是git diff HEAD^!
。这个差异的反转(如果这甚至是一件事)将是我需要时所需的所有调试语句。有没有办法做到这一点?
或者你会建议任何其他理智的工作流来处理这种事情。
答案 0 :(得分:3)
如果您的prtinf语句很容易被解析,您可以声明content filter driver,这里是清洁过滤器:
(来源:Pro Git book: Customizing Git - Git Attributes)
您的clean
脚本将是simple sed
command skipping lines matching a pattern。
这样,任何git diff
或git commit
都会在没有 printf
调试语句的情况下考虑您的来源。
答案 1 :(得分:0)
这可以通过git stash -p
方法完成,您可以手动选择要藏匿的内容和不藏匿的内容,但我不建议这样做,因为此藏匿将非常脆弱你可以从master那里做一些更新(也许来自其他开发人员)你的stash将不会被干净地应用,你将不得不解决冲突,这可能比手工添加那些调试语句更麻烦。
作为替代方案,您可以使这些调试语句成为条件语句,例如,只有在您的计算机上运行代码时运行它们,如果设置了某个DEBUG
环境变量或者其他内容:
puts 'my debug here' if ENV['DEBUG'] # example in ruby
这样,这些调试语句只能在您的机器上看到,而不能在生产中看到。