Git alias с двумя командами (stash pop + merge) выполняет только первую команду. Зачем? Как выполнить также слияние?
Я создал псевдоним Git, как это:
git config --global alias.popmerge '!git stash pop && git merge master'
Тогда я называю это так:
git popmerge
"Git stash pop" выполняется, но "git merge master" игнорируется.
Если я запускаю "git merge master" сразу после "git popmerge"... он запускается как обычно, выполняя слияние.
У меня есть другие псевдонимы с длинными последовательностями команд... и они работают без нареканий. Кажется, что-то в "git stash pop" заставляет процесс псевдонима останавливаться... Можно ли избежать такого поведения? Как?
Благодарю.
1 ответ
Решение
Вы проверили код выхода из хранилища?
&&
подразумевает, что последующий список выполняется только в том случае, если код выхода равен 0 (успех).
Вы можете просто проигнорировать код выхода, используя ;
вместо &&
,
Проверьте успех, используя такие вещи, как:
true && echo ok || echo fail # echoes "ok"
false && echo ok || echo fail # echoes "fail"