【GIT问题解决】---- 在【.gitignore】中添加了忽略文件或文件夹后不生效

开源 0

1. 出现问题

在已经提交过的 GIT 管理的项目中,在 .gitignore 文件中新增一些忽略的文件或者文件夹,或者直接新建 .gitignore 文件之后,新增的内容不生效。

2. 实例截图

输入图片说明

3. 实例描述

  1. lifecycle.js 文件已新增到 .gitignore 文件中,但是 lifecycle.js 文件修改的时候依然会上传;
  2. yarn.lock、yarn-error.log、package-lock.json 和 lifecycle.js 是相同的情况。

4. 分析原因

  1. .gitignore 文件的用途:该文件只能作用于Untracked Files,也就是那些从来没有被 GIT 记录过的文件(自添加以后,从未 add 及 commit 过的文件)。
  2. 规则不生效因为:那些 .log 文件曾经被 GIT 记录过,因此 .gitignore 对它们完全无效。

5. 解决办法

5.1 方案一

未被 GIT 记录过,那就只有删除远程库和本地的被忽略文件或文件夹。

  • 1.1 删除本地被忽略的文件;
  • 1.2 git add *
  • 1.3 git commit -m “xxx”
  • 1.4 git push

按照此方案,会导致本地文件或者文件夹也被删除,这样会导致本地也会存在问题。

5.2 方案二

未被 GIT 记录过,删除远程库被忽略文件或文件夹,保留本地的被忽略文件或文件夹。

  • 2.1 git rm --cached filename/-r directory
  • 2.2 git commit -m “xxx”
  • 2.3 git push

6. 删除远程库文件,保留本地

6.1 命令代码
git rm --cached yarn-error.loggit commit -m "删除远程库 yarn-error.log 文件"git push
6.2 执行演示
  1. 删除
    输入图片说明
  2. 提交
    输入图片说明
  3. 推送
    输入图片说明

7. 删除远程库文件夹,保留本地

7.1 命令代码
git rm --cached -r configgit commit -m "删除远程库 config 文件夹"git push
7.2 执行演示
  1. 添加忽略文件夹
    输入图片说明
  2. 删除
    输入图片说明
  3. 提交
    输入图片说明
  4. 推送
    输入图片说明

8. 总结

  1. 不同文件的作用阶段不同,因此在使用某个功能的时候,就需要搞清除该功能生效的情况。
  2. 删除文件和文件夹的不同命令,需要注意。
  3. push 后文件或者文件夹不会立即变暗,需要关闭编辑器,重新打开项目,忽略的文件或文件夹就会变暗。

也许您对下面的内容还感兴趣: