我通常的 git 部署工作流程如下:
[在 master 分支上]
git pull
git push
git checkout production
git pull
git merge master
git push
是否可以创建一个函数来执行所有这些命令,但如果其中一个命令返回错误(即合并冲突),它就会立即停止?
答案1
使用 && 仅当前一个命令成功完成后才会执行以下命令。$? 返回最新命令的状态命令。
function git_checkout()
{
git pull && git push && git checkout production && git pull && git merge master && git push
return $?
}
答案2
-e
如果 bash 在命令链中的最后一条命令中看到非零退出代码,则在 bash 中进行设置将导致其退出。
#!/bin/bash -e
# or `set -e`
false
echo 'I will never run!'
答案3
使用ERR_EXIT
哪个将导致你的脚本在任何错误时退出:
emulate -L zsh # do not change the environment outside the script
# If a command has a non-zero exit status, execute the ZERR trap,
# if set, and exit.
setopt ERR_EXIT
cd /jhkljhlk # <-- file does not exit and ls gives an error
echo "this will not run"