开发者

Git alias with two commands (stash pop + merge) executes only the first command. Why? How to execute also the merge?

开发者 https://www.devze.com 2023-03-08 13:18 出处:网络
I set up a git alias like this: git config --global alias.popmerge \'!git stash pop && git merge master\'

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 s开发者_如何学Gotash 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.


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:

true  && echo ok || echo fail   # echoes "ok"

false && echo ok || echo fail   # echoes "fail"
0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号