Git alias с двумя командами (stash pop + merge) выполняет только первую команду. Зачем? Как выполнить также слияние? - PullRequest
8 голосов
/ 25 мая 2011

Я настроил псевдоним git так:

git config --global alias.popmerge '!git stash pop && git merge master'

Тогда я называю это так:

git popmerge

« git stash pop » выполняется, но « git master merge » игнорируется.

Если после " git popmerge " я запускаю " git merge master " ... он автоматически выполняется должным образом, выполняя слияние.

У меня есть другие псевдонимы с длинными последовательностями команд ... и они работают без нареканий. Кажется, что-то в " git stash pop " заставляет процесс псевдонима останавливаться ... Можно ли избежать такого поведения? Как?

Спасибо.

1 Ответ

8 голосов
/ 25 мая 2011

Вы проверяли код выхода из всплывающего окна?

&& означает, что последующий список выполняется только в том случае, если код выхода равен 0 (успех).

Вы можете просто игнорировать код выхода, используя ; вместо &&.


Подтвердите успех, используя такие вещи, как:

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

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