xxzxka

Git ignore文件如何编写


在使用远程仓库的项目中,往往有一些文件夹或文件不需要被追踪文件状态,如node_modulesdist.idea.vscode等。
.gitignore文件就是用来解决这个问题的,这个文件通过一行行的规则来匹配忽略目标文件或文件夹。

1. 语法

以”#”号开头表示注释;
以斜杠“/”开头表示目录;
以星号“*”通配多个字符,匹配斜线以外的任何字符;
以问号“?”通配单个字符,匹配除 "/" 以外的任何一个字符;
以方括号“[]”包含单个字符的匹配列表;
以叹号“!”表示不忽略(跟踪)匹配到的文件或目录;

注意:

/在文件夹名前,表示根目录下的某个文件夹,/test/表示忽略根目录下的/test/目录的全部内容,而test/表示忽略文件夹test下的全部内容,不管是根目录下的/test/,还是某个子目录下的test文件夹,比如:/child/test,都会被忽略

2. 规则

1.1 已经被追踪的文件或文件夹,即使添加相应的规则,也不会被忽略,需要手动删除。要停止跟踪当前已被跟踪的文件,可使用 git rm --cached 从索引中移除该文件。文件名随后会被添加到 .gitignore 文件中,以防止该文件在以后的提交中被重新引入。
1.2 忽略规则存在覆盖情况,如果第一行范围较小,而后面的行范围较大,那么前面的规则将会被后面的规则覆盖。
1.3 .ignore 配置文件是按行从上到下进行规则匹配的,意味着如果前面的规则匹配的范围更大,则后面的规则将不会生效

3. 示例

创建示例文件结构项目

```shell
C:.
│   .gitignore
│   c.txt
│   f.txt
│   g.md
│
├───.idea
│       .gitignore
│       ignore.iml
│       modules.xml
│       vcs.xml
│       workspace.xml
│
├───dist
│   │   a.txt
│   │   b.txt
│   │   c.md
│   │   
│   └───cf
│           t.rust
│           
└───src
    │   a.txt
    │   c.txt
    │   e.md
    │   f.txt
    │
    └───dist
            a.txt
            c.txt
            d.md

编写.gitignore文件内容

/dist           #忽略dist文件夹下的所有文件,包括更深层的文件夹
/**/a.txt       #忽略所有文件夹下的a.txt文件,**匹配任一级目录,如/a/a.txt、/a/b/c/apifox.txt等
*.md            #忽略所有后缀为.md的文件
f.txt           #忽略所有的f.txt文件
src/**/c.txt    #忽略src文件夹下的任意层级子文件夹下的c.txt文件

只有根目录下的c.txt未包含在忽略规则内:

当前页面是本站的「Baidu MIP」版。查看和发表评论请点击:完整版 »