为什么不.gitignore忽略.sass-cache?

时间:2015-12-24 07:51:26

标签: git

我的项目如下:

enter image description here

的.gitignore:

/node_modules
/dist
/.tmp
/.sass-cache
.sass-cache
/bower_component

不知道为什么,但.sass-cache仍在上演:

User@User-PC MINGW64 /e/alex/istagingadmindashboard/frontEnd (deve)
$ git add .

User@User-PC MINGW64 /e/alex/istagingadmindashboard/frontEnd (deve)
$ git status
On branch deve
Your branch is up-to-date with 'remotes/origin/deve'.
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

        modified:   .sass-cache/a1ee9da9874bbf1b217c6f2a5cd8c2c7c5ee78fe/main.scssc
        modified:   app/scripts/building/uploadPage.js
        modified:   app/styles/main.scss
        modified:   app/views/building/uploadproject.html

为什么有任何想法?

5 个答案:

答案 0 :(得分:11)

{1}}文件可能在该特定文件夹的内容被暂存后更新。要完成圈子,请执行.gitignore

另外,git rm -r --cached .sass-cache/只需要一个条目;最好是在前面或末尾用斜线表示它作为目录。

答案 1 :(得分:5)

问题是您已将文件夹.sass-cache上传到服务器。你看到它说modified。你必须这样做:

git rm .sass-cache/*
git commit -a -m "removed folder"
git push origin master

下次执行git status时,您将看不到该文件夹​​。

此外,您无需同时添加

/.sass-cache
.sass-cache

只有最后一个就够了

答案 2 :(得分:3)

git已经跟踪了这些文件,因此.gitignore对这些文件没有影响。但是,新的未跟踪文件将被忽略。有关详细信息,请参阅the gitignore documentation

答案 3 :(得分:0)

来自维基:

  

如果您已经签入了文件,并且想要忽略它,那么如果稍后添加规则,Git将不会忽略该文件。在这些情况下,您必须首先在终端中运行以下命令来解除文件:

     

git rm --cached

答案 4 :(得分:0)

如果您想从您的repo中删除已经提交的sass-cache文件 - 并且是在Linux上。您可以从repo文件的根目录在终端中运行find命令:

$_ `find . -name "*.scssc" -exec git rm -f {} \;`

之后提交:

$_ git commit -m "Remove .scssc cache files."

然后使用$_ nano .gitignore将这些行添加到.gitignore:

styles/.sass-cache/*
styles/.sass-cache
.sass-cache/
*.css.map