Skip to content

git中.gitignore文件详解 #12

Open
@junhey

Description

@junhey

语法

先来看一段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   //提交到远程服务器

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions