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

时间:2014-10-07 14:17:10

标签: git jekyll gitignore

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

背景

我正在使用Jekyll建立一个博客。 Jekyll在开始提供时会生成_site.sass-cache个目录。

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

为了过于谨慎,我将以下所有行添加到.gitignore

##Jekyll
/_site/
_site/
_site
/.sass-cache/
.sass-cache/
.sass-cache

因为我知道我之前提交过这些文件,所以我:

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

问题

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

问题

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

.gitignore处于当前状态can be found here

1 个答案:

答案 0 :(得分:9)

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

修复:

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

此时,忽略文件应该开始正常工作。