具有两个命令的 Git 别名 (stash pop + merge) 仅执行第一个命令。为什么?如何执行合并?
我像这样设置了一个 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”中的某些东西使别名进程停止...是否可以避免这种行为?如何?
谢谢。
I set up a git alias like this:
git config --global alias.popmerge '!git stash pop && git merge master'
Then I call it, like this:
git popmerge
The "git stash pop" is executed, but the "git merge master" is ignored.
If I run "git merge master" right after the "git popmerge"... it sumply runs as expected, performing the merge.
I have other aliases with long sequences of commands... and they run flawlessly. It seems something at "git stash pop" makes the alias process to halt... Is it possible to avoid this behavior? How?
Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您检查过 stash pop 的退出代码吗?
&&
意味着仅当退出代码为 0(成功)时才执行后续的列表。您可以使用
;
而不是&&
来忽略退出代码。使用以下内容验证是否成功:
Have you checked the exit code from stash pop?
&&
implies that the subsequent list is only executed if the exitcode is 0 (success).You can simply ignore the exitcode by using
;
instead of&&
.Verify the success by using stuff like: