如何列出git仓库中所有缓存文件和未跟踪文件的清单?

6

git ls-files无法实现此功能,因此我想到了以下方法:

git ls-files; git status --porcelain | grep ^?? | cut -d' ' -f2

但是我想知道是否有Git原生命令可以实现此功能以使其更易移植?

1个回答

8

一个简单的技巧(使用 git clean):

git clean -n -d -x

这将列出所有被忽略和私有的文件(作为要删除的文件)。

但这不是基于一个管道命令。

也许可以尝试:

git ls-files --others --exclude-standard -z

(From git-ready)

--others             lists untracked files
--exclude-standard   uses .gitignore and the default git excludes
-z                   null-delimited output

但是 git clean -nd 不会打印一个简单的列表。 - Bohr
@Bohr 但你可以像在 git ls-files 中一样使用 awk/cut 进行操作(除了更容易,因为你只需要删除每行开头的“Would remove”部分)。 - VonC
谢谢,这是一点进步,但仍然不具备可移植性。 - Bohr
@Bohr,然而,我已经编辑了答案,并更完整地使用了git ls-files - VonC

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接