.gitignore文件写法
前言
我们在使用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详解
Git 忽略规则优先级
在 .gitingore 文件中,每一行指定一个忽略规则,Git 检查忽略规则的时候有多个来源,它的优先级如下(由高到低):
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.
或者你发现,可能是.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文件写法相关推荐
- Git使用-.gitignore文件(使一些文件不上传到git)
全栈工程师开发手册 (作者:栾鹏) 架构系列文章 一般我们总会有些文件无需纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表.通常都是些自动生成的文件,比如日志文件,或者编译过程中创建的临时文件 ...
- .gitignore文件如何编写?
.gitignore文件即 项目中不需要被追踪(track)且上传到git系统的文件 <1>忽略文件的原则 a.忽略操作系统自动生成的文件,比如缩略图等 b.忽略编译生成的中间文件.可执行 ...
- java map 输入 查询 修改_Mybatis增删改查mapper文件写法详解
1. 插入 INSERT sql命令(命令里通过#{}获取对象属性) EG: INSERT INTO PRAC_PERSON(p_NAME,P_PASSWORD) VALUES(#{name},#{p ...
- 如何创建.gitignore文件,忽略git不必要提交的文件
1.在需要创建 .gitignore 文件的文件夹, 右键选择Git Bash 进入命令行,进入项目所在目录. 2.输入 touch .gitignore ,生成".gitignore&qu ...
- gitignore 文件生效办法
.gitignore 可以添加一些不加入git版本控制的文件 比如一些测试文件.因人而异的配置信息等等 .gitignore 文件展示如下 /.idea/target//.classpath /.pr ...
- git如何忽略已经提交的文件 (.gitignore文件无效)
一. 问题 在初始化git仓库的时候没有创建.gitignore文件来过滤不必要提交的文件, 后来却发现某些文件不需要提交, 但是这些文件已经被提交了, 这时候创建.gitignore文件忽略这些文件 ...
- Git 提交 .gitignore文件
问题描述 不知道小伙伴有木有遇到这种情况:想在工程里增加 .gitignore 文件,用于在以后提交后,过滤哪些文件或者目录. 但是,在当前工程的根目录下,执行如下执行命令后,依然不能把 .gitig ...
- Git中.gitignore文件的使用
在我们使用git的时候,有时候就不想传一些与代码无关的文件到远程仓库中,比如说编译后的文件,.gitignore就可以帮助我们处理这些文件. 生成.gitignore文件 在git bash中使用 ...
- 添加gitignore文件后使其生效
遇到的问题 我们发现在添加.gitignore文件后,当我们想push文件的时候,我们声明的忽略文件还是会出现在push的目录中 原因分析 某些文件已经被纳入版本管理中,就算是在.gitignore中 ...
- Git .gitignore文件忽略(自己做过测试了)
Git提供了文件忽略功能.当对工作区某个目录或者某些文件设置了忽略后,git将不会对它们进行追踪. 一.建立.gitignore文件 在项目根目录下创建一个名为.gitignore的文件(注意文件的前 ...
最新文章
- 高精度模板 c++/类封装
- 同层物体间的遮挡处理
- ​谁是信创担当 《2021中国信创生态市场研究报告》今日正式发布
- python经典书籍推荐:Python核心编程
- c #include如何找到文件_使用 MATLAB Function 模块集成 C 代码
- sys.dm_db_wait_stats
- 服务器------sz命令 – 从Linux上下载文件到本地
- 计算机大二学生个人总结报告,计算机学生大二第二学期自我总结计划自我总结计划.doc...
- 大家之言 | 谈“网络安全终身教育”
- C语言程序设计教程_第四章:键盘输入与屏幕输出_笔记整理
- sinc插值原理及其实现
- 2022 精心整理的 C语言/C++ 语言学习宝藏,值得收藏~
- 台式电脑插入耳机听不到声音,排除耳机问题
- 备份和恢复 ESXi 主机配置
- 为何一个简单的测试类H5却要花费我2天时间才完成?
- 【MySQL笔记】视图的创建与使用(VIEW)
- 网易云音乐前端模块动态下发系统
- iPhone X携人脸识别改变行业,美图美妆用人脸识别改变女人
- 银行网点数字化怎么做?打造“线上+线下”服务新模式
- 教你如何修改私服NPC卖东西
热门文章
- android 脚本模拟点击屏幕,android 脚本模拟点击屏幕,android模拟
- 十五. Go学习:goroute和cahnnel
- PlayStation@4功能介绍及测试应用
- 真格量化学习处理——几个功能小函数
- POJ-1149网络流
- 使用PowerShell查看Windows 补丁记录并写入数据库
- Alipay Global API 境外支付宝接口对接
- Android可收缩伸展的Expandable分组RecyclerView
- “确定“和“取消“摆放顺序
- 全赔你们要1200亿!知网哭穷:我们一年净赚还不到2亿