前言
一般情况下,对于那些自动生成的文件(比如node_modules, .DS_Store),我们是不希望他们处于版本控制之下的。因此,我们可以在项目的根目录下添加一个.gitignore文件使得git不管理这些文件。
另外,我们也可以在项目的子目录中创建一个.gitignore文件,这样一来,该文件就只能影响该目录下的文件。这在某些情况下是很有用的例如,如果我们的项目是用多语言来编写的,那么他们应各自有一个不同的配置文件。
语法规范
- 空行不匹配任何文件,因此它可以作为可读性的分隔符。
- 以 #开头的行用作注释
- 斜线 /用作目录分隔符
- *匹配除斜杠以外的任何内容
- ?匹配除- /之外的任何一个字符
- **与完整路径名匹配的模式中的两个连续星号具有特殊含义- 前导  **后跟斜杠表示在所有目录中匹配
- 尾随的 /**匹配里面的所有内容
- 斜杠后跟两个连续的星号,然后斜杠匹配零个或多个目录
- 其他连续的星号被视为常规星号,将根据之前的规则进行匹配
 
- 前导  
- !表示不忽略匹配到的文件或目录
关于路径指定
/dir/就是当前的dir文件夹,不包含子文件夹而
dir/不仅仅是当前的文件夹也包括子文件夹
配置文件示例
# 忽略所有目录下文件名为a的任何文件
a.*
# 忽略所有目录下后缀为txt的文件
*.txt
# 不忽略所有目录下的c.txt文件
!c.txt
# 忽略file目录下所有文件,包括其他目录下的file目录下的文件
# 例如 a/file下面的文件会被忽略
file/
# 只忽略当前file目录下所有文件,不包括其他目录下的file目录下的文件
# 例如 a/file下面的文件不会被忽略
/file
# 忽略任何位置file目录下的所有文件
file
# 忽略任何位置file目录下的所有文件 同file
**/file
# 忽略任何直接位于c目录下的file目录下的所有文件
**/c/file
# 同file/
file/**
# 忽略a/file,a/c/file,a/c/d/file 目录下的所有文件
a/**/file
复制代码当
.gitignore配置发生冲突时,后面的配置会覆盖前面的配置
Github 上为开发者提供了各种环境以及各种编程语言的 gitignore 文件配置模版,可以根据自己的需求选用
注意⚠️
.gitignore问价中的配置只能影响那些当前还未交由git来管理的文件。如果其中某个文件已经被现有的仓库包含了,那么他的修改依然会被git记录。我们可以通过下面的方法来解决这个问题。
git update-index --assume-unchanged 文件名
// 恢复该文件的提交
git update-index --no-assume-unchanged 文件名
复制代码总结
要写一个.gitignore文件,首先我们得了解.gitignore文件的语法规范,然后知道那些文件是要被我们忽略的,最后注意.gitignore文件只会管理还未提交到git的文件
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
    























![[桜井宁宁]COS和泉纱雾超可爱写真福利集-一一网](https://www.proyy.com/skycj/data/images/2020-12-13/4d3cf227a85d7e79f5d6b4efb6bde3e8.jpg)

![[桜井宁宁] 爆乳奶牛少女cos写真-一一网](https://www.proyy.com/skycj/data/images/2020-12-13/d40483e126fcf567894e89c65eaca655.jpg)
