Git 别名不打印命令的输出
Git alias does not print output of command
我有以下 git 别名
[alias]
remaster = !"git checkout & git diff-tree -r --patch --diff-filter=DM ..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
注意上面只说了commit
,没有说git commit
。无论如何,有一个常见的技巧可以通过使用虚拟 shell 函数来实现你想要的:
[alias]
remaster = "!f() { git checkout && git diff-tree -r --patch --diff-filter=DM ..master | git apply; }; f"
(我还把单曲 &
改成了 &&
。)
我有以下 git 别名
[alias]
remaster = !"git checkout & git diff-tree -r --patch --diff-filter=DM ..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
注意上面只说了commit
,没有说git commit
。无论如何,有一个常见的技巧可以通过使用虚拟 shell 函数来实现你想要的:
[alias]
remaster = "!f() { git checkout && git diff-tree -r --patch --diff-filter=DM ..master | git apply; }; f"
(我还把单曲 &
改成了 &&
。)