.gitignore语法及配置问题

前言

在工程中,并不是所有文件都需要保存到版本库中,例如“target”目录及目录下的文件就可以忽略。在Git工作区的根目录下创建一个特殊的.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件或目录。
在这里插入图片描述

.gitignore语法

标识 说明 举例
#或空格 空行或以#开头的行将被git忽略,可以用作注释 ### IntelliJ IDEA ###
* 代表零个或多个任意字符 *.txt会匹配所有后缀为txt的文件
代表一个任意字符 ?.txt 会匹配a.txt 但不会匹配ab.txt
[] 可以匹配括号内的任一字符 [abc].txt 会匹配a.txt,b.txt和c.txt
** 两个星号 ** 表示任意中间目录 **/foo会匹配 foo,a/foo,a/b/foo等
前缀! 表示不忽略 *.txt和!important.txt会忽略所有的.txt文件,但不会忽略important.txt
前缀/ 表示只忽略当前目录下的文件 /test 会忽略当前目录下的test文件,但不会忽略a/test
后缀/ 表示只忽略目录 test/ 会忽略test目录,但不会忽略test文件

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

Git 忽略规则优先级

在 .gitingore 文件中,每一行指定一个忽略规则,Git 检查忽略规则的时候有多个来源,它的优先级如下(由高到低):
1、从命令行中读取可用的忽略规则
2、当前目录定义的规则
3、父级目录定义的规则,依次递推
4、$GIT_DIR/info/exclude 文件中定义的规则
5、core.excludesfile中定义的全局规则

git 对于 .ignore 配置文件是按行从上到下进行规则匹配的,意味着如果前面的规则匹配的范围更大,则后面的规则将不会生效

gitignore规则不生效

1、.gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。解决方法就是先把本地缓存删除(改变成未track状态),然后再提交。
相关git命令:

	git rm -r --cached .
	git add .
	git commit -m 'update .gitignore'

2、想添加一个文件到git,发现添加不了,原因是这个文件被.gitignore忽略了

$ git add App.class
The following paths are ignored by one of your .gitignore files:
App.class
Use -f if you really want to add them.

如果你确实想添加该文件,可以用-f强制添加到Git,或者是.gitignore写得有问题,需要找出来到底哪个规则写错了,可以用git check-ignore命令检查

$ git check-ignore -v App.class
.gitignore:3:*.class    App.class

git会告诉我们,.gitignore的第3行规则忽略了该文件,于是我们就可以知道应该修订哪个规则。

Java项目中常用的.gitignore文件

# Prerequisites
*.d
 
# Compiled Object files
*.slo
*.lo
*.o
*.obj
 
# Precompiled Headers
*.gch
*.pch
 
# Compiled Dynamic libraries
*.so
*.dylib
*.dll
 
# Fortran module files
*.mod
*.smod
 
# Compiled Static libraries
*.lai
*.la
*.a
*.lib
 
# Executables
*.exe
*.out
*.app
 
build/
.vscode/

c++项目中常用的.gitignore

# Prerequisites
*.d
 
# Compiled Object files
*.slo
*.lo
*.o
*.obj
 
# Precompiled Headers
*.gch
*.pch
 
# Compiled Dynamic libraries
*.so
*.dylib
*.dll
 
# Fortran module files
*.mod
*.smod
 
# Compiled Static libraries
*.lai
*.la
*.a
*.lib
 
# Executables
*.exe
*.out
*.app
 
build/
.vscode/

注意事项

  • 命令和注释别在同一行,如*.txt #注释txt这样会导致这一行无法被识别;
  • git add .之前如果有改动.gitignore一定要 执行 git rm -r --cached;
  • 合理使用.gitignore可以避免无用文件的上传,也可以防止重要配置信息的泄露.

相关推荐

  1. git运用之.gitignore 配置文件的常用写法案例

    2024-04-23 07:52:05       37 阅读
  2. 解决.gitignore文件无效问题

    2024-04-23 07:52:05       38 阅读
  3. .gitignore

    2024-04-23 07:52:05       35 阅读
  4. 解决IDEA配置gitignore不生效

    2024-04-23 07:52:05       44 阅读
  5. 【Git】gitignore 添加忽略文件不生效的问题

    2024-04-23 07:52:05       39 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-23 07:52:05       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-23 07:52:05       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-23 07:52:05       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-23 07:52:05       20 阅读

热门阅读

  1. Rust语言之简单涉猎

    2024-04-23 07:52:05       13 阅读
  2. springboot WebSocket的用法

    2024-04-23 07:52:05       15 阅读
  3. K8S Pod 常见问题

    2024-04-23 07:52:05       14 阅读
  4. 2024年最新 CKA 试题题库及答案详解 导航页

    2024-04-23 07:52:05       16 阅读
  5. Linux学习(嵌入式硬件知识)

    2024-04-23 07:52:05       17 阅读
  6. 【Node.js】json-server

    2024-04-23 07:52:05       43 阅读
  7. Ruby中Rack中间件的作用是什么?如何应用?

    2024-04-23 07:52:05       30 阅读
  8. Kubernetes 核心技术组件Scheduler解析

    2024-04-23 07:52:05       50 阅读
  9. I fumo 星(STL,数学)

    2024-04-23 07:52:05       18 阅读
  10. Nginx四层负载均衡

    2024-04-23 07:52:05       26 阅读
  11. CSS3 transition过渡:打造流畅动画效果的全面指南

    2024-04-23 07:52:05       34 阅读
  12. 天星金融消保课堂开讲,金融健康意识再提升

    2024-04-23 07:52:05       16 阅读