.gitignore 文件不起作用解决

前言

最近项目开发中,项目文件目录变更,重新迁移了项目,结果要提交几百上千个问题,瞬间吓了一笔,中途更改,.gitignore 不起作用导致的。.gitignore 为隐藏文件,显示隐藏方能看到,或使用终端。百度一番,寻找解决方法,特总结一下。

解决方法:

原因:说在git中会有缓存,如果某些文件已经被纳入了版本管理中,就算是在.gitignore中已经声明了忽略路径也是不起作用的,这时候我们就应该先把本地缓存删除,然后再进行git的push,这样就不会出现忽略的文件了。git清除本地缓存命令如下:

git rm -r --cached .
git add .
git commit -m 'update .gitignore'

但是执行第一个命令就报错了:

image.png

字面意思

the following files have staged content different from both the
file and the HEAD:
与HEAD不同的文件暂存内容
"已暂存和修改"的项目的这个状态,即:首先对其进行了修改,然后对其进行了暂存和修改.然后又进行了修改.

看提示可以使用:
git rm --cached -f 规避此错误.
但是通常,当我使用git rm --cached取消暂存文件时,不会出现此错误.

继续执行:

git rm --cached -f

报错 zsh: parse error near\n' `
试了几次错误的:

git rm --cached -f
git rm --cached -f

百度了才发现,不需要<>,

git rm --cached -f project/AumanService/.idea/libraries/Dart_Packages.xml 128 ↵
rm 'project/AumanService/.idea/libraries/Dart_Packages.xml'

终于成功了,同上继续执行提交。

附:.gitignore文件 资源共用

.gitignore文件是用来忽略开发者想忽略掉的文件或目录,如果没有.gitignore文件,可以自己手工创建。在.gitignore文件中的每一行保存一个匹配的规则。例如:

“#” 此为注释 – 将被 Git 忽略,没有“”,基本上都一样,都是#注释

*.a # 忽略所有 .a 结尾的文件
!lib.a # 但 lib.a 除外

/TODO # 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO

node_modules
.project
.vscode

build/ # 忽略 build/ 目录下的所有文件
doc/*.txt # 会忽略 doc/notes.txt,但不包括 doc/server/arch.tx

你可能感兴趣的:(.gitignore 文件不起作用解决)