git repos中ls -R的工具

时间:2013-12-12 21:58:32

标签: git unix ls

我一直在使用ls -R来查看中小型目录的结构和内容,比如我正在处理的项目,但由于存在而变得难以使用其中很多都是.git

当有.git时,ls -R的前100行只是git索引文件和哈希的大量列表,因此很难使用。有没有办法可以修改ls -R或其他工具,我可以使用它只显示.git以外的文件?最好,我仍然可以看到其他dotfile文件夹,但如果我不能,我就能活下来。

3 个答案:

答案 0 :(得分:1)

您需要的是ls的-I(或--ignore)选项:ls -R -I .git

查看manual

‘-I pattern’
‘--ignore=pattern’
    In directories, ignore files whose names match the shell pattern (not regular
    expression) pattern. As in the shell, an initial ‘.’ in a file name does not
    match a wildcard at the start of pattern. Sometimes it is useful to give this
    option several times. For example,

        $ ls --ignore='.??*' --ignore='.[^.]' --ignore='#*'

    The first option ignores names of length 3 or more that start with ‘.’, the
    second ignores all two-character names that start with ‘.’ except ‘..’, and
    the third ignores names that start with ‘#’. 

答案 1 :(得分:1)

Git的ls-files有很多有用的选择。普通git ls-files将仅列出跟踪的文件。使用git ls-files -oc列出所有内容。

git ls-files -ic --exclude-standard

列出了与.gitignore模式匹配的所有跟踪文件,最好了解这些文件。


要求它只显示“忽略”文件,同时提供自定义忽略模式非常有用:

git ls-files -ic -x*.pdf

将向您显示所有跟踪.pdf,s / ic / io /以及未跟踪.pdfs等Check out its docs,您可以[ab]以各种有用的方式使用其排除变体。

答案 2 :(得分:0)

一种可能性是使用find

find . -path ./.git -prune -o -print