gitignore规则再学习

gitignore规则之前就学习过, 不过到现在还是一知半解, 昨天又重新学习了一下, 并做了一些实验, 似乎又明白了, 所以记录下来, 以备后续查阅.

  • 首先, .gitignore文件所在的目录作为匹配的根目录
  • 对于每一个目录或者文件全路径, 进行匹配规则验证
    如下所示的目录结构:
    image
    要匹配的文件或者目录名如下:
    /A1/
    /A1/a.txt
    /A1/b.txt
    /B1/
    /B1/A2/
    /B1/a.txt
    /B1/b.txt
    /.gitignore
    /a.txt
  • 匹配时要匹配文件或者目录的全名
    比如, .gitignore的内容是a, 则不会匹配任何一个, 但是如果是a.txt, 则会匹配所有包括a.txt的项, 如下所示:
    image
  • *可以匹配任何字符, 不管是当前目录还是子目录
    如下所示:
    image
  • 前面是/, 表示仅匹配当前目录
    比如/a.txt表示匹配当前目录下的a.txt文件, 可以理解为把文件全路径作为字符串, 从字符串的开头进行匹配. 如下所示:
    image
  • 后面是/, 表示仅匹配目录(含子目录)
    image
  • **表示多级目录, 比如/src/**/a.txt表示匹配根目录下src目录下的任何子目录下的a.txt文件
  • 还有别的匹配规则, 懒得写了
  • 最后, 补充一个经验, gitignore是分层处理的, 最好需要时每一个目录下面都放置一个gitignore文件, 每个文件只管理当前目录, 这样比较清楚, 出现问题也比较容易定位.
posted @ 2023-06-04 11:33  顺其自然,道法自然  阅读(36)  评论(0编辑  收藏  举报