我有一个no
git hook:
post-receive
如何检查git命令的状态并在脚本失败时停止脚本继续?
如下所示:
#!/bin/bash
while read oldrev newrev refname
do
branch=$(git rev-parse --symbolic --abbrev-ref $refname)
if [ -n "$branch" ] && [ "master" == "$branch" ]; then
working_tree="/path/to/working/dir"
GIT_WORK_TREE=$working_tree git checkout $branch -f
GIT_WORK_TREE=$working_tree git pull
<more instructions>
fi
done
答案 0 :(得分:1)
如何检查git命令的状态并在脚本失败时停止脚本继续?
以同样的方式检查任何shell命令的状态:通过查看返回代码。您可以在命令退出后检查shell变量$?
的值,如:
GIT_WORK_TREE=$working_tree git pull
if [ $? -ne 0 ]; then
exit 1
fi
或者将命令本身用作条件的一部分,如:
if ! GIT_WORK_TREE=$working_tree git pull; then
exit 1
fi