我一直在为我们团队的项目开发一项新功能,并且我的代码更改在相当有用的地方包含了许多调试打印语句。在推送代码之前,我将删除所有这些调试打印语句,但我知道每当我回到这个时候,我最终都会再次放入这些调试打印语句。Git - 在从代码中删除之前'保存'调试语句
所以,如果我删除调试语句,并提交。所有需要的调试语句基本上都是git diff HEAD^!
。这种差异的反转(如果这甚至是一件事情)将是我需要的所有调试语句。有没有办法做到这一点?
或者你会建议任何其他理智的工作流程来处理这种事情。
我一直在为我们团队的项目开发一项新功能,并且我的代码更改在相当有用的地方包含了许多调试打印语句。在推送代码之前,我将删除所有这些调试打印语句,但我知道每当我回到这个时候,我最终都会再次放入这些调试打印语句。Git - 在从代码中删除之前'保存'调试语句
所以,如果我删除调试语句,并提交。所有需要的调试语句基本上都是git diff HEAD^!
。这种差异的反转(如果这甚至是一件事情)将是我需要的所有调试语句。有没有办法做到这一点?
或者你会建议任何其他理智的工作流程来处理这种事情。
例如,可以使用git stash -p
方法完成此操作,您可以在其中手动选择要存储和不存储的内容,但我不建议这样做,因为此存储将非常脆弱,您可以做一些来自master的更新(也许从其他开发者那里),你的存储将不会被干净地应用,你将不得不解决冲突,而不是手动添加这些调试语句会更麻烦。
作为替代方案,可以使那些调试语句的条件,例如,运行它们只有在代码是在你的机器上运行,如果一些DEBUG
环境变量设置或东西:
puts 'my debug here' if ENV['DEBUG'] # example in ruby
这这些调试语句只能在你的机器上看到,而不能在生产中看到。
如果您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
调试语句。