在开发过程中,会有一些无需加入版本管理的内容,比如项目npm生成的 node_modules,它虽然重要,但是不需要进行版本管理,只需要在使用的时候 npm install 就可以了。
再比如编译生成的中间文件,可执行文件也无需进行版本管理。
我们如何处理这一类的文件呢?
在 Git 工作区的根目录下创建一个 .gitignore
文件,管理不需要进行版本控制的文件或者目录,在使用 git 管理时,就会自动忽略这些文件,即便是改动了这些文件,也不会出现在工作区当中。
忽略文件的原则
一般来说
- 忽略系统自动生成文件。比如 npm 生成的 node_modules
- 忽略编译生成的中间文件、可执行文件。如果一个文件是通过另一个文件自动生成的,那么自动生成的文件就没必要放进版本库中。比如 python 编译产生的
.pyc
、.pyo
等文件
gitignore 语法
常用主要有三种
- 忽略指定文件
dir/file.java
- 忽略整个文件夹
/dir/
- 比如在小程序开发中,除了 npm 生成的 node_modules 不需要管理,我们引入的三方UI库也不需要版本管理。
/miniprogram_npm/ /node_modules/
- 忽略某一类文件
*.class
在使用 gitignore 时,支持基本正则语法,比如 *
多个字符,?
单个字符,#
注释
除了上面介绍的接种常用句式,也可以反向排除
比如忽略某个目录下的文件,但有部分文件要保留,可以在指定文件前加 !
表明是不忽略文件。