如何使用.gitignore反向选择

lis*_*nan 4 git gitignore

使用.gitignore反向选择,我只是想跟踪app目录。app是emply下的二级目录。

在此输入图像描述

我使用了以下代码,但是 git 没有跟踪任何内容

*
!*/
!*/app
Run Code Online (Sandbox Code Playgroud)

我已经测试过类似的问题,照着写,但是无效

vau*_*ett 7

我只是遇到了一个稍微棘手的问题并最终来到这里,所以如果您也遇到这种情况,请执行以下操作:

如果您忽略一个具体目录(例如本例中的 /Emply/ )但想要包含它的一些子目录或包含的文件,则这将不起作用

/Emply/
!/Emply/app  # Does not work!
Run Code Online (Sandbox Code Playgroud)

原因是 git 出于性能原因不会列出被忽略的目录(来源)。相反,使用通配符忽略所有同级目录和文件:

/Emply/*
!/Emply/app  # Works!
Run Code Online (Sandbox Code Playgroud)

这有点晦涩难懂,简直让我抓狂。