在脚本中捕获git post-receive错误

Jis*_*iot 7 git bash git-post-receive git-bash

在bash脚本中,我做了一个

git push
Run Code Online (Sandbox Code Playgroud)

我检查它的退出状态.

在远程服务器上有一个post-receive hook,可以做一些事情.如果发生错误,则post-receive挂钩将以非零值退出.

但是当post-receive hook错误输出时,git push会正常退出.除非我专门检查输出的特定错误字符串(我不是),我的脚本认为一切正常.

我有一个简单的方法来确定接收后挂钩是否失败?

Jis*_*iot 5

所以答案是否定的,没有办法轻松检查 post-receive 挂钩是否失败。您能做的最好的事情就是让您的脚本检查来自远程的输出,并确保您的 post-receive 挂钩回显您正在查找的错误消息。

就我而言,预接收挂钩不起作用,因为我正在推送到另一个备份存储库,并且必须先接受新的提交才能推送。

基本上,接收后挂钩应该执行以下操作:

 some-command-that-might-fail

 RC=$?

 if [ $RC -eq 0 ]; then
echo -e "\nERROR: some-command-that-might-fail FAILED!!!!!!!! PANIC!!!!!!\n"
 fi
Run Code Online (Sandbox Code Playgroud)

然后,执行推送的脚本应 grep 输出 FAILED、ERROR 或 PANIC,并报告接收后错误。