在gitignore中的**和*有点令人困惑。以下是我在.gitignore中的内容:
*
!*.rst
这适用于根目录中所有*.rst文件。那么子目录中的.rst文件呢?
我尝试过。
*
!*.rst
!**/*.rst
但这并不改变任何事情。
*
!*.rst
!*/
如果你阅读了这个SO答案,你会意识到Git忽略文件的方式是依赖于系统的。
gitignore
手册清楚地说明了glob将不会被修改并传递给系统的fnmatch
库函数
所以你使用的操作系统和Git发行版是什么(Unix还是Windows上的Msysgit)?
因为在Windows上,“**
”不太好用(甚至根本不起作用)。
此外,请确保在.gitignore文件中声明之前,*.rst文件没有被添加到缓存中。它们需要从缓存中删除(并提交已清除的缓存),然后.gitignore才能按预期工作(另请参见这篇博客文章)。