强制git状态仅显示文件名,不显示路径

时间:2018-12-28 14:18:41

标签: git

是否可以使用例如 sed 工具使 git 状态仅显示文件名,而没有任何路径?代替:

/relative/path/to/file/filename.py

我只是欢迎您

filename.py

我的项目中的路径很长,这使得git status的输出难以理解。

git状态输出示例:

modified:   d/da/mvp/view/dialogelement/composite/Tab.py
modified:   da/dab/core/api/Messages.py

2 个答案:

答案 0 :(得分:2)

使用Bash:

for fname in $(git status --short | cut -d ' ' -f 2); do basename $fname; done

将为您提供预期的输出。但是请注意,目录将显示为文件。

答案 1 :(得分:1)

您可以执行以下操作:

git status | sed 's-\(#\t\+modified: \+\)\(.*/\)\([^/]\+\)-\1.../\3-'

这将替换所有以modified:开头的文本,以及一堆用.../包含斜杠的空格,直到最后一个斜杠。路径的前缀,空格和最后一部分将保持不变。

使用-E-r标志,可以用更少的反斜杠实现类似的结果:

git status | sed -E 's-(#\t+modified: +)(.*/)([^/]+)-\1.../\3-'