Open
Description
语法
先来看一段d代码
*.a # 忽略所有 .a 结尾的文件
!lib.a # 但 lib.a 除外
/TODO # 仅仅忽略项目根目录下的 TODO 文件,不包括ubdir/TODO
build/ # 忽略 build/ 目录下的所有文件
doc/*.txt # 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt
从上面代码中可以看出一些语法规则,其实和正则的语法基本上一样
?:代表任意的一个字符
*:代表任意数目的字符
{!ab}:必须不是此类型
{ab,bb,cx}:代表ab,bb,cx中任一类型即可
[abc]:代表a,b,c中任一字符即可
[ ^abc]:代表必须不是a,b,c中任一字符
一般来说最基本上的.gitignore文件如下
/node_modules
/.idea
.DS_Store
排除了node_modules(npm的依赖包)、.idea(编辑器配置文件)、.DS_Store(系统文件) ,因为这些无关代码项目的配置项文件是不应该上传到git服务器,上传上去了对于项目体积会太大
已经上传了怎么重新忽略
针对于已经commit了,再加入gitignore时,发现是无效的,这个时候需要删除下缓存。这个时候操作如下:
git rm -r -n --cached /node_modules //-n:加上这个参数,执行命令时,是不会删除任何文件,而是展示此命令要删除的文件列表预览。
git rm -r --cached /node_modules //最终执行命令.
git commit -m"移除src目录下所有文件的版本控制" //提交
git push origin master //提交到远程服务器