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

标签 git bash git-bash git-post-receive

在 bash 脚本中我做了一个

git push

然后我检查它的退出状态。

在远程服务器上有一个接收后 Hook ,它可以做一些事情。如果发生错误,接收后 Hook 将以非零值退出。

然而,当 post-receive Hook 出错时,git push 正常退出。除非我专门检查特定错误字符串的输出(我不是),否则我的脚本认为一切正常。

有没有一种简单的方法可以确定接收后 Hook 是否失败?

最佳答案

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

在我的例子中,预接收 Hook 将不起作用,因为我正在推送到另一个备份存储库,并且必须在推送之前接受新提交。

基本上 post-receive 钩子(Hook)应该做这样的事情:

 some-command-that-might-fail

 RC=$?

 if [ $RC -eq 0 ]; then
echo -e "\nERROR: some-command-that-might-fail FAILED!!!!!!!! PANIC!!!!!!\n"
 fi

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

关于git - 在脚本中捕获 git post-receive 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12961128/

相关文章:

git - 如何将我的 git 存储库克隆到远程计算机?

git - 无法使用脚本删除 Git 分支

git - 如何强制将功能分支推送到 Gerrit?

regex - 修剪长文件名的名称[重命名]

linux - bash 脚本中的语法错误 : "(" unexpected -- with ! (*.sh)

java - 如何像在后台那个目录中一样执行脚本(例如 mvnw)?

bash - 如何在 Windows 的 git bash 中运行 "make"命令?

windows - Heroku 登录成功,但随后卡住

git - 如何配置git从一个存储库中 pull 并推送到另一个存储库

git - 在团队中工作时正确使用 Git/Github