问题描述
|
我像这样设置了一个git别名:
git config --global alias.popmerge \'!git stash pop && git merge master\'
然后我这样称呼它:
git popmerge
\“ git stash pop \”被执行,但是\“ git merge master \”被忽略。
如果我在\“ git popmerge \”之后立即运行\“ git merge master \” ...它会按预期运行,执行合并。
我还有其他别名,它们的命令序列很长……它们可以完美运行。似乎在“ git stash pop \”处,别名进程停止了...是否可以避免这种行为?怎么样?
谢谢。
解决方法
您是否检查了隐藏弹出窗口的退出代码?
“ 2”表示仅当退出码为0(成功)时才执行后续列表。
您可以使用
;
而不是&&
来忽略退出码。
使用以下方法验证成功:
true && echo ok || echo fail # echoes \"ok\"
false && echo ok || echo fail # echoes \"fail\"