具有两个命令的Git别名(隐藏弹出+合并)仅执行第一个命令。为什么?如何执行合并?

| 我像这样设置了一个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\"
    

要回复问题请先登录注册