是否可以仅将 "git show --name-status --oneline master" 减少到摘要行?
Is it possible to reduce "git show --name-status --oneline master" to the summary line only?
在以下输出中,我想排除以 "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
使用“--summary”有帮助,但它仍然会留下 "extra" 内容:
$ 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" 进行管道传输以获得所需结果(如下所示),但我正在寻找严格基于 [=25] 的解决方案=]选项。
您可以使用 grep -v
删除所有以 'A' 或 'M':
开头的行
git show --name-status --oneline master | grep -v '^[A,M]'
日志消息本身是一行,您还要求提供名称-状态行。
"Added: f1.txt, f2.txt; modified: master_1.txt
" 只是(一行)文本 git 从提交消息中复制出来的。如果您不希望它显示已更改文件的名称和状态,请执行
git show -s --oneline master # `-s` is short for `--no-patch`
因为显示提交的默认设置是区分补丁,除非你告诉它一些不同的东西。
我看到 git 文档并没有以最好的方式组织起来,以方便查找 -s
选项。 . .
在以下输出中,我想排除以 "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
使用“--summary”有帮助,但它仍然会留下 "extra" 内容:
$ 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" 进行管道传输以获得所需结果(如下所示),但我正在寻找严格基于 [=25] 的解决方案=]选项。
您可以使用 grep -v
删除所有以 'A' 或 'M':
git show --name-status --oneline master | grep -v '^[A,M]'
日志消息本身是一行,您还要求提供名称-状态行。
"Added: f1.txt, f2.txt; modified: master_1.txt
" 只是(一行)文本 git 从提交消息中复制出来的。如果您不希望它显示已更改文件的名称和状态,请执行
git show -s --oneline master # `-s` is short for `--no-patch`
因为显示提交的默认设置是区分补丁,除非你告诉它一些不同的东西。
我看到 git 文档并没有以最好的方式组织起来,以方便查找 -s
选项。 . .