我遇到的问题是我的手指会自动输入git push origin master.如果我正在努力new-branch并且意味着键入git push origin new-branch并且有未按下的更改,master它们将被意外推送.有没有办法防止这种情况,以便我只能推进当前分支?
我一直在尝试编写一个简单的bash脚本作为pre-push钩子,我在推送Java代码时会检查缺少的测试文件.
问题是:read命令没有等待用户输入,它就像没有输入输入一样继续.
has_java="git diff --stat --cached origin/master | grep \"src\/main.*\.java\""
has_test="git diff --stat --cached origin/master | grep \"src\/test.*\.java\""
exit_val=0
if eval $has_java; then
if eval $has_test; then
:
else
echo "*** NO TESTS WERE FOUND WHILE PUSHING JAVA CODE ***"
read -n1 -p "Do you want to CONTINUE pushing? [Y/n]" doit
case $doit in
n|N) exit_val=1 ;;
y|Y) exit_val=0 ;;
*) exit_val=0 ;;
esac
fi
fi
Run Code Online (Sandbox Code Playgroud)