在预提交挂钩中引发git警告

dav*_*nte 5 git

当我或其他人在工作中提交项目时,我一直在使用git中的pre-commit挂钩来检查问题。我可以以非零状态退出,以指示该提交存在严重的问题,应立即修复。

但是,有时问题仅仅是程序员需要警告的内容(例如,他们需要根据更改来更新帮助文件)。我有什么方法可以发出git警告,例如您收到的“ LF将被CRLF替换”警告?我的部分动机是因为我们中的一些人使用SmartGit,因此警告以黄色清晰显示在屏幕上。

提交后的钩子看起来很有希望,但是在尝试了不同的返回值之后,它也从未真正警告我。将所有内容都保留在pre-commit挂钩中会很好,而且我敢肯定有更好的方法可以做到这一点。感谢您提供的任何提示!

dav*_*nte 2

看来能够返回警告返回码的想法只是 SmartGit 种在我脑子里的东西。底层 git 仅在成功时返回零,在失败时返回非零。

在 Windows 上的 git bash 中运行此命令,例如:

touch tmp.txt
echo "lf line endings" > tmp.txt
git add tmp.txt
echo $?
Run Code Online (Sandbox Code Playgroud)

你应该得到零作为最后一个返回码,即使在你最后一次调用 git 之后刚刚出现了一个“警告”(并且 SmartGit 将其识别为警告并且可能给你一个漂亮的黄色三角形)。

通过尝试(即困难的方式),我意识到 SmartGit 只是搜索以“警告:”开头的行,并吸收该行的“警告:”部分以触发漂亮的黄色三角形。它删除“警告:”文本并打印“警告:”中“:”之后的所有内容作为“输出”窗口中的警告。

不是很复杂,但至少现在已经为他们记录了。