.gitignore即使清除缓存也无法正常工作

时间:2017-09-28 16:10:38

标签: git

在我已经将初始提交推送到我的git repo之后,我犯了创建gitignore文件的错误。

我的.gitignore很简单,只包含:

node_modules

我尝试了以下内容:

git rm --cached -rf .
git add .
git commit 'Fix untracked files'
git push

我还尝试删除项目目录中的.git文件夹并重新初始化整个项目。

两次它仍然推送我的node_modules目录!

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:4)

  1. 首先,从.gitignore文件中删除node_modules(因此,.gitignore现在为空)。

  2. 清理git缓存并删除node_modules文件夹。

    $ git rm -r --cached node_modules    # clean git cache
    $ rm -rf node_modules                # delete node_modules
    
  3. 执行git添加,提交,推送到远程。现在,node_modules将从远程删除。

    $ git add -A
    $ git commit -m 'Delete node_modules'
    $ git push origin HEAD
    
  4. 在.gitignore文件中添加node_modules,清除git cache,生成node_modules文件夹。

    # add 'node_modules/' into .gitignore
    
    $ git rm -r --cached node_modules
    $ npm i          # generate node_modules
    
    $ git status     # see if git ignores node_modules folder now
    
  5. 执行git添加,提交,推送到远程。现在.gitignore包含node_modules,因此git将来会忽略该文件夹。

    $ git add .
    $ git commit -m 'Add node_modules in .gitignore'
    $ git push origin HEAD