如何只显示当前目录中未跟踪的文件(忽略子目录)?

14
git ls-files --others

如何在当前目录下仅显示未跟踪的文件?

3个回答

8
使用ls-files的排除模式:
 # on Windows, with msysgit
 git ls-files --others -x */*

 # on Unix (Cygwin or Ubuntu), quotes are necessary around the pattern
 git ls-files --others -x "*/*"

来自man页:

-x <pattern>
--exclude=<pattern>

跳过与模式匹配的未跟踪文件。请注意,该模式是一个 shell 通配符模式。

接受这个作为更一般的解决方案(但是 grep -v / 也是一个好答案)。请注意,模式需要用引号括起来(“* / *”)。 - Leo Alekseyev
@Leo:你需要引号吗?在我的msysgit 1.7.4中,我不需要在排除模式周围使用它们。 - VonC
出于某种原因,我认为-x仅匹配基本名称。 - Mark Longair
是的,在Cygwin(1.7.3.3)或Ubuntu(现在无法检查版本)中,如果没有引号,这对我不起作用。 - Leo Alekseyev

2

我不认为有一个选项可以使git ls-files产生这种效果,但你可以直接执行以下命令:

git ls-files --other | grep -v /

...仅列出当前目录中未跟踪的文件。


1
如果当前目录是仓库的顶层目录,你可以这样做。
git ls-files -iox "/*"

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