Git alias不打印命令的输出

Git alias不打印命令的输出,git,git-alias,git-diff-tree,Git,Git Alias,Git Diff Tree,我有以下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

我有以下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

Git别名主要用于调用另一个Git命令,而不是多个任意命令。也就是说,你通常会这样做

[alias]
    aa = commit --amend -a --no-edit
请注意,上面只提到提交,而不是git提交。无论如何,有一个常见的技巧可以通过使用虚拟shell函数来实现您想要的:

[alias]
    remaster = "!f() { git checkout $1 && git diff-tree -r --patch --diff-filter=DM $1..master | git apply; }; f"
我还把单曲改成了正确的&&