gitignore 中的 ** 和 * 有点混乱。这是我在 .gitignore 中的内容:
*
!*.rst
这适用于根目录中的所有 *.rst 文件。子目录中的 .rst 文件呢?
我试过了
*
!*.rst
!**/*.rst
但这并没有改变任何东西。
在您的 .gitignore 中尝试以下操作
*
!*.rst
!*/
这样你告诉 git 不要忽略子目录。
如果您阅读此SO 答案,您将意识到 Git 忽略文件的方式是依赖于系统的。
gitignore
手册页清楚地表明 glob 将不加更改地传递给系统的库fnmatch
函数
那么您使用的是什么操作系统和 Git 发行版(Unix 或 Windows 上的 Msysgit)?
因为在 Windows 上,' **
' 不能很好地工作(如果有的话)。
另外,在 .gitignore 文件中声明它们之前,请确保您的 *.rst 文件尚未添加到缓存中。在 .gitignore 按预期工作之前,需要将它们从缓存中删除(并提交清除的缓存)(另请参阅此博客文章)