尽管.gitignore和rm -r --cached,git仍然显示文件未跟踪.我做错了什么?

Sea*_*een 8 git gitignore jekyll

在这种情况下,我不确定我的.gitignore文件出了什么问题,但是这些文件一直在显示.

背景

我正在使用Jekyll建立一个博客.Jekyll 在开始服务时生成_site和编目.sass-cache.

我之前提交过这些目录,然后才意识到我想忽略它们.

为了过于谨慎,我向我添加了以下所有内容.gitignore:

##Jekyll
/_site/
_site/
_site
/.sass-cache/
.sass-cache/
.sass-cache
Run Code Online (Sandbox Code Playgroud)

既然我知道我之前提交过这些文件,我:

  • 提交了更新的.gitignore文件.
  • 做了一个 git rm -r --cached .
  • 删除了_site.sass-cache文件夹
  • 跑了一个,git add .git status显示工作目录是干净的

问题

尽管如此,更新的.gitignore文件,并验证(我认为?)事情是干净和良好的,每当我运行bundle exec jekyll serve和jekyll生成文件时,我看到.sass-cache_site显示在我未跟踪的文件中.

  • 我在这做错了什么?我的.gitignore是不正确的?
  • 如何确保git永远不会在未跟踪列表中显示这些目录?

可以在此处找到当前状态的.gitignore .

Dav*_*uel 10

您的.gitignore文件当前被检测为UTF-16LE编码.将编码更改为UTF-8是解决方案.

修理:

  • 在Notepad ++等文本编辑器中打开.gitignore文件
  • 将编码(在np ++中,这是通过Encoding菜单)更改为没有BOM的UTF-8
  • 保存文件.
  • 将.gitignore文件添加到暂存中
  • git commit -m "fixed ignore file"

此时,ignore文件应该开始正常工作.