前言
我们在使用git的时候,如果需要忽略某个文件夹,可以在仓库根目录下创建一个.gitignore文件,在.gitignore添加需要忽略的文件和文件夹,那么git就会忽略相应的文件和文件夹,就不会提交和上传这些文件

语法
.gitignore语法:

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

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

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

用法
下面演示下gitignore规则的常用用法

*.txt  ,*.xls  表示过滤某种类型的文件
target/ :表示过滤这个文件夹下的所有文件
/test/a.txt ,/test/b.xls  表示指定过滤某个文件下具体文件
!*.java , !/dir/test/     !开头表示不过滤
*.[ab]    支持通配符:过滤所有以.a或者.b为扩展名的文件
/test  仅仅忽略项目根目录下的 test 文件,不包括 child/test等非根目录的test目录

.gitignore的用法

Git忽略文件.gitignore详解

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

Git 忽略规则优先级

在 .gitingore 文件中,每一行指定一个忽略规则,Git 检查忽略规则的时候有多个来源,它的优先级如下(由高到低):

  1. 从命令行中读取可用的忽略规则
  2. 当前目录定义的规则
  3. 父级目录定义的规则,依次递推
  4. $GIT_DIR/info/exclude 文件中定义的规则
  5. core.excludesfile中定义的全局规则

Git 忽略规则匹配语法

在 .gitignore 文件中,每一行的忽略规则的语法如下:

* 空格不匹配任意文件,可作为分隔符,可用反斜杠转义
* 开头的文件标识注释,可以使用反斜杠进行转义
* ! 开头的模式标识否定,该文件将会再次被包含,如果排除了该文件的父级目录,则使用 ! 也不会再次被包含。可以使用反斜杠进行转义
* / 结束的模式只匹配文件夹以及在该文件夹路径下的内容,但是不匹配该文件
* / 开始的模式匹配项目跟目录
* 如果一个模式不包含斜杠,则它匹配相对于当前 .gitignore 文件路径的内容,如果该模式不在 .gitignore 文件中,则相对于项目根目录
* ** 匹配多级目录,可在开始,中间,结束
* ? 通用匹配单个字符
* * 通用匹配零个或多个字符
* [] 通用匹配单个字符列表
bin/: 忽略当前路径下的bin文件夹,该文件夹下的所有内容都会被忽略,不忽略 bin 文件
/bin: 忽略根目录下的bin文件
/*.c: 忽略 cat.c,不忽略 build/cat.c
debug/*.obj: 忽略 debug/io.obj,不忽略 debug/common/io.obj 和 tools/debug/io.obj
**/foo: 忽略/foo, a/foo, a/b/foo等
a/**/b: 忽略a/b, a/x/b, a/x/y/b等
!/bin/run.sh: 不忽略 bin 目录下的 run.sh 文件
*.log: 忽略所有 .log 文件
config.php: 忽略当前路径的 config.php 文件

.gitignore规则不生效

.gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。

解决方法就是先把本地缓存删除(改变成未track状态),然后再提交:

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

你想添加一个文件到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文件

# Compiled class file
*.class# Eclipse
.project
.classpath
.settings/# Intellij
*.ipr
*.iml
*.iws
.idea/# Maven
target/# Gradle
build
.gradle# Log file
*.log
log/# out
**/out/# Mac
.DS_Store# others
*.jar
*.war
*.zip
*.tar
*.tar.gz
*.pid
*.orig
temp/

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
*.appbuild/
.vscode/

.gitignore文件写法相关推荐

  1. Git使用-.gitignore文件(使一些文件不上传到git)

    全栈工程师开发手册 (作者:栾鹏) 架构系列文章 一般我们总会有些文件无需纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表.通常都是些自动生成的文件,比如日志文件,或者编译过程中创建的临时文件 ...

  2. .gitignore文件如何编写?

    .gitignore文件即 项目中不需要被追踪(track)且上传到git系统的文件 <1>忽略文件的原则 a.忽略操作系统自动生成的文件,比如缩略图等 b.忽略编译生成的中间文件.可执行 ...

  3. java map 输入 查询 修改_Mybatis增删改查mapper文件写法详解

    1. 插入 INSERT sql命令(命令里通过#{}获取对象属性) EG: INSERT INTO PRAC_PERSON(p_NAME,P_PASSWORD) VALUES(#{name},#{p ...

  4. 如何创建.gitignore文件,忽略git不必要提交的文件

    1.在需要创建 .gitignore 文件的文件夹, 右键选择Git Bash 进入命令行,进入项目所在目录. 2.输入 touch .gitignore ,生成".gitignore&qu ...

  5. gitignore 文件生效办法

    .gitignore 可以添加一些不加入git版本控制的文件 比如一些测试文件.因人而异的配置信息等等 .gitignore 文件展示如下 /.idea/target//.classpath /.pr ...

  6. git如何忽略已经提交的文件 (.gitignore文件无效)

    一. 问题 在初始化git仓库的时候没有创建.gitignore文件来过滤不必要提交的文件, 后来却发现某些文件不需要提交, 但是这些文件已经被提交了, 这时候创建.gitignore文件忽略这些文件 ...

  7. Git 提交 .gitignore文件

    问题描述 不知道小伙伴有木有遇到这种情况:想在工程里增加 .gitignore 文件,用于在以后提交后,过滤哪些文件或者目录. 但是,在当前工程的根目录下,执行如下执行命令后,依然不能把 .gitig ...

  8. Git中.gitignore文件的使用

      在我们使用git的时候,有时候就不想传一些与代码无关的文件到远程仓库中,比如说编译后的文件,.gitignore就可以帮助我们处理这些文件. 生成.gitignore文件 在git bash中使用 ...

  9. 添加gitignore文件后使其生效

    遇到的问题 我们发现在添加.gitignore文件后,当我们想push文件的时候,我们声明的忽略文件还是会出现在push的目录中 原因分析 某些文件已经被纳入版本管理中,就算是在.gitignore中 ...

  10. Git .gitignore文件忽略(自己做过测试了)

    Git提供了文件忽略功能.当对工作区某个目录或者某些文件设置了忽略后,git将不会对它们进行追踪. 一.建立.gitignore文件 在项目根目录下创建一个名为.gitignore的文件(注意文件的前 ...

最新文章

  1. 高精度模板 c++/类封装
  2. 同层物体间的遮挡处理
  3. ​谁是信创担当 《2021中国信创生态市场研究报告》今日正式发布
  4. python经典书籍推荐:Python核心编程
  5. c #include如何找到文件_使用 MATLAB Function 模块集成 C 代码
  6. sys.dm_db_wait_stats
  7. 服务器------sz命令 – 从Linux上下载文件到本地
  8. 计算机大二学生个人总结报告,计算机学生大二第二学期自我总结计划自我总结计划.doc...
  9. 大家之言 | 谈“网络安全终身教育”
  10. C语言程序设计教程_第四章:键盘输入与屏幕输出_笔记整理
  11. sinc插值原理及其实现
  12. 2022 精心整理的 C语言/C++ 语言学习宝藏,值得收藏~
  13. 台式电脑插入耳机听不到声音,排除耳机问题
  14. 备份和恢复 ESXi 主机配置
  15. 为何一个简单的测试类H5却要花费我2天时间才完成?
  16. 【MySQL笔记】视图的创建与使用(VIEW)
  17. 网易云音乐前端模块动态下发系统
  18. iPhone X携人脸识别改变行业,美图美妆用人脸识别改变女人
  19. 银行网点数字化怎么做?打造“线上+线下”服务新模式
  20. 教你如何修改私服NPC卖东西

热门文章

  1. android 脚本模拟点击屏幕,android 脚本模拟点击屏幕,android模拟
  2. 十五. Go学习:goroute和cahnnel
  3. PlayStation@4功能介绍及测试应用
  4. 真格量化学习处理——几个功能小函数
  5. POJ-1149网络流
  6. 使用PowerShell查看Windows 补丁记录并写入数据库
  7. Alipay Global API 境外支付宝接口对接
  8. Android可收缩伸展的Expandable分组RecyclerView
  9. “确定“和“取消“摆放顺序
  10. 全赔你们要1200亿!知网哭穷:我们一年净赚还不到2亿