在我们使用代码仓库在不同电脑之间同步代码,或进行代码公开时,我们通常不希望将全部文件一起上传。这时候我们在提交代码是就需要填写忽略配置文件,来指定自动排除某些文件。
一般主要是为了实现这些要求:
- 忽略操作系统自动生成的文件,例如日志、缩略图等
- 忽略编译生成的中间文件、可执行文件等
- 忽略敏感信息的配置文件,比如存放密码口令的配置文件。
.gitignore文件基础
首先,在我们的项目根文件夹中创建名为.gitignore
的配置文件,将需要忽略的文件或文件价列出来。
例如,我们将编译过程中的中间文件和日志文件忽略,其中*
为通配符。
*.log
build/
.gitignore文件语法
- 以
#
开头的行为注释行,可以使用反斜杠进行转义。 - 以斜杠
/
开头表示目录;/
结束的模式只匹配文件夹以及在该文件夹路径下的内容,但是不匹配该文件。 - 以星号
*
通配多个字符,即匹配多个任意字符。 - 以问号
?
通配单个字符,即匹配一个任意字符。 - 以方括号
[]
包含单个字符的匹配列表,即匹配任何一个列在方括号中的字符。比如[abc]
表示要么匹配一个a,要么匹配一个b,要么匹配一个c; - 以叹号
!
表示不忽略(跟踪)匹配到的文件或目录,即要忽略指定模式以外的文件或目录
*.log *.log: 忽略所有 .log 结尾的文件
! test.log 但是 test.log 文件不忽略
/test 忽略项目下的 test 文件,子文件夹不会
test/ 忽略 test/ 文件夹以及其中全部内容
/test: 忽略根目录下的 test 文件,子目录的不会被忽略
test/: 忽略当前目录下的 test 文件夹,以及其中内容,不会忽略 test 文件
不生效的原因
当我们后面添加该配置文件或修改后,可能不会其作用。这时我们需要清除一下缓存cache,才能是.gitignore 生效。
git rm -r --cached . # 清除缓存
git add . # 重新trace file
git commit -m "update .gitignore" # 提交和注释
git push origin master # 同步到master上的话
评论区