5

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

然而,有时问题只是程序员需要警告的事情(例如,他们需要根据他们的更改更新帮助文件)。有什么方法可以让我发出一个 git 警告,例如你得到的“LF 将被 CRLF 取代”?我的部分动机是我们中的一些人使用 SmartGit,所以警告清楚地显示为黄色。

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

4

1 回答 1

2

似乎能够返回警告返回码的想法只是 SmartGit 在我脑海中种下的东西。底层 git 仅返回零表示成功,非零表示失败。

在 Windows 上的 git bash 中运行它,例如:

touch tmp.txt
echo "lf line endings" > tmp.txt
git add tmp.txt
echo $?

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

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

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

于 2013-02-28T04:08:24.217 回答