我一直在使用git中的预提交钩子来检查我或其他人在工作时提交项目时的问题。我可以以非零状态退出,以指示提交存在严重问题,应立即修复。
然而,有时问题只是程序员需要警告的事情(例如,他们需要根据他们的更改来更新帮助文件)。有没有办法让我提出一个git警告,例如你所获得的“LF将被CRLF取代”?我的一部分动机是我们中的一些人使用SmartGit,因此警告显示为黄色。
post-commit钩子看起来很有希望,但在尝试了不同的返回值之后,它从来没有给我一个警告。将所有内容保留在预提交钩子中会很好,我相信有更好的方法可以做到这一点。感谢您提供的任何提示!
答案 0 :(得分:2)
似乎能够返回警告返回代码的想法只是SmartGit在我脑海中种植的东西。底层git只返回零表示成功,非零表示失败。
在Windows上的git bash中运行它,例如:
touch tmp.txt
echo "lf line endings" > tmp.txt
git add tmp.txt
echo $?
你应该得到零作为最后一个返回代码,即使在你最后一次调用git之后出现“警告”(并且SmartGit将其识别为警告并且可能给你一个漂亮的黄色三角形)。
通过试验(即艰难的方式),我意识到SmartGit只是搜索以“warning:”开头的行,然后吸收行的“警告:”部分来触发漂亮的黄色三角形。它删除了“warning:”文本并将“warning:”中“:”之后的所有内容打印为“输出”窗口中的警告。
不是很复杂,但至少现在已经记录了它们。