.gitignore 的用法

前言

Mac的每个文件夹默认都有一个隐藏的.DS_Store文件, 这个文件保存了文件夹自定义属性, 如图标位置或背景色等.虽然这个文件默认是隐藏的, 但是我们在使用git时, 如果不主动去在.gitignore中配置, 默认也会把这个隐藏的.DS_Store文件push到git上去, 每个文件夹下都有, 看起来很不美观.

.gitignore

我们一般在执行git操作时, 有时候不想把所有的文件都push上去, 例如

  • Java编译产生的class文件
  • 敏感信息的配置文件
  • 操作系统自动生成的文件, 例如.DS_Store等
  • 或者是我们就是不想某个文件push上去
    这个时候我们只需要在.gitignore中写入一些适当的规则, 就可以实现上面的效果

.gitignore 语法规范

  • 空行或是以#开头的行即注释行将被忽略
  • 以斜杠 “/” 结尾表示目录
  • 以星号 “*” 通配多个字符
  • 以问号 “?” 通配单个字符
  • 以方括号 “[]” 包含单个字符的匹配列表
  • 以叹号 “!” 表示不忽略(跟踪)匹配到的文件或目录

示例

#忽略当前文件夹下的.DS_Store文件
.DS_Store
#忽略所有子目录下的.DS_Store
*/.DS_Store
#忽略所有的.a文件
*.a
#否定忽略test.a文件, 即时前面忽略了所有的.a文件
!test.a
#忽略根目录下的build文件夹
build/
#忽略lwj文件夹下面的所有目录, 不管是根目录下的/lwj/, 还是子目录下的 /child/lwj/
lwj/*
#忽略根目录下lwj下的所有目录
/lwj/*
#忽略当前文件夹下的TOOD, 不包括子目录下的/child/TOOD
/TOOD
#忽略/doc/test.txt,不能忽略/doc/test/test.txt
doc/*.txt
#有一种写法
#忽略全部
/*
#不忽略.gitignore, 不忽略 lwj和dyq文件夹
!.gitignore
!/lwj
!/dyq

github上提供了各个语言对应的.gitignore文件 查看地址
本文参考了以下文章

  • Git忽略规则.gitignore梳理
  • 如何编写gitignore文件
  • Git中全局忽略.DS_Store文件

待完善

你可能感兴趣的:(.gitignore 的用法)