是否有可能减少" git show --name-status --oneline master"到汇总线?

时间:2015-05-10 15:16:58

标签: git commit summary

在以下输出中,我想排除以" A"开头的行。或" M"。有可能吗?

 $ git show --name-status --oneline master
    4e8f3e9 Added: f1.txt, f2.txt; modified: master_1.txt
    A       f1.txt
    A       f2.txt
    M       master_1.txt

使用" - 摘要"有帮助,但它仍然离开"额外"其中的东西:

$ git show --summary --oneline master
4e8f3e9 Added: f1.txt, f2.txt; modified: master_1.txt
 create mode 100644 f1.txt
 create mode 100644 f2.txt

我在这里发现的有趣的是,虽然" - oneline"如果指定,输出绝对不限于一行! :)

虽然可以处理输出,例如管道输出" grep -v"为了获得所需的结果(如下所示),我正在寻找一种严格基于git选项的解决方案。

2 个答案:

答案 0 :(得分:1)

您可以使用grep -v删除所有以' A'开头的行。或者' M':

git show --name-status --oneline master | grep -v '^[A,M]'

答案 1 :(得分:1)

日志消息本身就是一行,您还要求输入名称 - 状态行。

Added: f1.txt, f2.txt; modified: master_1.txt”只是从提交消息中复制的(一行)文本git。如果您不希望它显示已更改文件的名称和状态,请执行

git show -s --oneline master   # `-s` is short for `--no-patch`

因为显示提交的默认设置是为了区分补丁,除非你告诉它不同的东西。

我看到git文档是,嗯,没有以最好的方式组织,以便轻松找到-s选项。 。