git上传时忽略文件
2019-08-19 本文已影响0人
PENG先森_晓宇
git上传时有时不想上传某些与项目无关的文件或者文件夹如vendor目录和log文件,或者一些机密的文件如.env文件,这时就可以设置git的忽略文件。
- 首先在项目的根目录创建.gitignore文件
- 在.gitignore文件中写入忽略的文件。一行一个配置项,如下
vendor/
logs/*
!logs/README.md
.idea/
.env
.DS_Store
supervisord.log
src/Logs/*
忽略文件语法
- 忽略文件夹(文件夹也不上传)。此处为
相对匹配
,即相对项目根目录匹配,带 /。
/vendor/
- 忽略文件内容(保留文件夹),相对匹配。
/src/Logs/*
- 保留某文件(只保留logs目录下的README.md文件),相对匹配。
/logs/*
!/logs/README.md
-
全局匹配
,没带 /,即项目中所有的.env和.DS_Store都将被忽略。
.env
.DS_Store
- 模糊匹配,即项目中所有的后缀为.log的文件都将被忽略。
*.log
.gitignore设置了忽略文件,但是上传时还会上传
以.idea为例
原因
.idea已经被git跟踪,之后再加入.gitignore后是没有作用的
解决办法
清除.idea的git缓存
git rm -r --cached .idea -f
如果要清除 /src/Logs/*,类似这种前面有斜杠的,如下命令会报找不到目录
git rm -r --cached /src/Logs/
fatal: Invalid path '/src': No such file or directory
所以需要改为./,即可修改
git rm -r --cached ./src/Logs/