0

我如何使用git ls-files仅显示文件(即不包括目录)?例如,我想从以下输出中删除asd1和:asd2

$> git ls-files                         
asd1/bar
asd1/foo
asd2/bar
base.html
index.html
list.html

有没有办法在不涉及字符串操作的情况下做到这一点?

4

2 回答 2

1

这就是管道的用途:

 git ls-files | while read filename; do basename $filename; done

我也可以走这条路:

git ls-files | sed 's/.*\///'
于 2021-03-22T22:42:35.963 回答
0

好的,我终于让它工作了......我留下了答案,希望能节省一些时间:

git ls-tree --name-only -r HEAD | grep -v -w -e "$(git ls-tree -d --name-only HEAD)"
于 2021-03-22T23:18:59.127 回答