在以下输出中,我想排除以" 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选项的解决方案。
答案 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
选项。 。