Git可以忽略特定的已注释的调试代码吗?

4
作为前端开发人员,我经常添加代码来隐藏后端开发人员的错误信息 ;)
有没有一种方法让git忽略以某种方式注释的代码?例如:
.error { display:none; } // DEBUG-GIT-PLEASE-IGNORE

还是有人写了这个插件吗?

看起来这是一个常见的Git钩子用例,它完全拒绝带有调试代码的提交。 - KingCrunch
https://dev59.com/tGw15IYBdhLWcg3whMK_ - vergenzt
@vergenzt建议“最好为每个部署目标准备一个配置文件,并针对您启动服务器的方式设置一些运行时参数”--我看到了这句话,但不知道它是什么意思或如何实现! - Jake Rayson
我认为答案的一部分与特定的Web应用程序有关,而不是Git。 - vergenzt
2个回答

3
你可以创建一个干净的筛选器,它会删除所有包含DEBUG-GIT-PLEASE-IGNORE的行。
但更加干净的方式是更改Web应用程序,以便在Web主机上配置此行为。

谢谢Rudi。看起来你可以通过钩子完全忽略整个文件,由@KingCrunch提供(在这种情况下,在提交时必须删除调试代码),或者您可以使用过滤器来删除所有调试行。但是为什么第二种方法被认为是“不干净”的呢? - Jake Rayson
主要问题是,存储库中的代码与工作副本中的代码不同。这可能会导致微妙的错误。假设有一行包含两个语句的代码,其中第一个是真正的代码,而第二个是调试代码。使用干净的过滤器将剪切掉两个语句,导致存储库中的文件缺少所需的语句。 - Rudi

0

实际上,不行。Git目前没有忽略文件特定部分的方法,只能忽略整个文件。

然而,可以编写脚本修改git diff的输出,并配置git使用该脚本。我不确定这样做的效果如何,因为我认为git不使用diff来暂存文件,但这可能值得研究。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接