Git alias не печатает вывод команды - PullRequest
0 голосов
/ 31 августа 2018

У меня есть следующий псевдоним git

[alias]  
remaster = !"git checkout $1 & git diff-tree -r --patch --diff-filter=DM $1..master"

При использовании вышеуказанной команды вручную я получаю следующий вывод:

$ git diff-tree -r --patch development..master --diff-filter=DM

diff --git a/subfolder/subfile.exe b/subfolder/subfile.exe
deleted file mode 100644
index e69de29..0000000
diff --git a/virus.exe b/virus.exe
deleted file mode 100644
index e69de29..0000000

При использовании псевдонима выход недоступен, поэтому я не могу использовать его для исправления:

$ git remaster development

1 Ответ

0 голосов
/ 31 августа 2018

Псевдонимы Git в основном предназначены для вызова одной другой git команды, а не более одной произвольной команды. То есть вы обычно делаете что-то вроде

[alias]
    aa = commit --amend -a --no-edit

Обратите внимание, что выше сказано только commit, а не git commit. В любом случае, есть обычная хитрость, которая позволяет достичь желаемого с помощью фиктивной функции оболочки:

[alias]
    remaster = "!f() { git checkout $1 && git diff-tree -r --patch --diff-filter=DM $1..master | git apply; }; f"

(Я также изменил сингл &, чтобы правильно сказать &&.)

...