[转载]用对 gitignore

使用 git 做代码管理工具时,设置 gitignore 是必不可少的流程,一些系统或者 IDE 会在目录下生成与项目不相关的文件,而这些文件我们不期望被提交到仓库之中。理解 gitignore 的 pattern 规则十分重要。

Pattern 规则

关于 Pattern 规则,可以查看 git 的相关文档:http://git-scm.com/docs/gitignore,大致有以下几点:

  • 空行不匹配任何内容,所以可以作为块分隔符;
  • # 开头表示注释,如果相匹配 #,可以在前面加一个反斜杠,即 #;
  • 除非加了反斜杠,否则一连串的空格会被忽略;
  • 如果在匹配的内容前面加上 !,则这些匹配过的部分将被移出,如果要匹配以 ! 开头的内容,需要加上反斜杠,如 !important.txt;
  • 如果一个匹配 pattern 后面有一个斜杠,如 foo/,则默认会匹配所有(包含父子文件夹)中的 foo 文件夹内容,并且它不会匹配单个的文件;
  • 如果一个匹配 pattern 不包含斜杠,如 foo,Git 会将其作为一个 shell 的查找命令匹配内容。

需要注意的 **

  • 如果一个 pattern 以 ** 开头,如 **/foo,最后会匹配所有文件夹下的 foo 文件(夹);
  • 如果一个 pattern 以 /** 开头,如 abc/**,则表示匹配 abc 目录下的所有内容;
  • 如果一个 pattern 中间包含 **,如 a/**/b,则会匹配 a/ba/x/ba/x/y/b 以及所有类似的内容。

gitignore 相关的问题

匹配示例

1、如果我们要匹配 ‘foo’ 目录下除去 ‘foo/bar/‘ 的内容,可以这样做:

foo/
!foo/bar/

2、如果要匹配所有目录下的 node_modules 文件夹,只需要这样做:

node_modules/

3、如果要匹配所有的 json 文件,可以这样做:

*.json

git 操作中,add 之后再加入 gitignore

Git 操作中经常会出现这样的问题,当我们 git add 之后,突然想起来要添加一个 gitignore 文件,但是一些诸如 node_modules/, cache/ 等文件已经被 add 进去了,这些文件不会被 ignore 掉,怎么办?

最直接的方式是:

  • # 这一步的操作相当于回到 git add 上一步
    git rm -r --cached .
  • # 然后重新 add
    git add --all .

git 添加空文件夹

Git 默认是不添加空文件夹的,如果一定要加入这个文件夹,有以下方案:

1)在文件夹添加文件,然后删除

2)在文件夹中添加一个 .gitkeep 文件


转载自:

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,833评论 19 139
  • Add & Commit git init 初始化一个 Git 仓库(repository),即把当前所在目录变成...
    冬絮阅读 10,396评论 0 9
  • 简书新手一枚…… 没有接任何广告,都只是自己从高中时候来积累的护肤化妆心得……当然可能要硬插一些……图片,目的也是...
    斓只有一个阅读 3,496评论 3 11
  • 塔罗日记day9:星币6 牌上两个乞丐跪伏在商人模样的男子面前,一个穿黄色斗篷,另一个穿蓝色外套,在乞讨。牌中间一...
    王可可coco阅读 3,851评论 0 0
  • 简书写作第五天。 今年我大三,也就是,准大四。 刚从学校组织里卸任出来,是该写写两年多它给我带来的某些人和某些事。...
    半岛哪有铁盒阅读 4,494评论 2 2

友情链接更多精彩内容