ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Git基础-忽略文件.gitignore的配置详解

2021-09-09 22:01:53  阅读:185  来源: 互联网

标签:文件 Git class 忽略 详解 f001 目录 gitignore


1. 忽略文件的需求

在我们的项目中,总有一些文件或者目录不想或者不能被纳入版本控制中。
比如:日志文件、开发工具的配置文件、java中的.class文件等。
这些文件都是针对开发者的,每一个开发者的日志文件、开发工具的配置文件都不一致,
如果纳入版本控制后,会对团队中其他成员的项目造成影响:每次进行代码合并的时候都会产生冲突。

因此,我们应该养成良好的习惯,每个项目中都应该有一个.gitignore文件,来忽略不想被纳入版本控制的文件。

2. .gitignore文件的使用限制

.gitignore的生效时机是:要忽略的文件还没有被纳入版本控制中。
即:如果一个文件已经做过一次提交了,那么,即便是在.gitignore文件中添加此文件进行忽略,也不会起作用!

3. .gitignore的语法描述

1)每一行表示一个匹配规则,空行会被忽略
2)以 # 开头的行表示注释,可以使用反斜杠进行转义
3)空格不匹配任何的文件,可以作为分隔符,可以使用反斜杠进行转义
4)* 表示匹配零个或多个任意字符
5)** 表示匹配任意中间目录;如 :a/**/z 可以匹配 a/z, a/b/z 或者 a/b/c/z;
6)? 表示匹配任意一个字符
7)[abc] 表示匹配任意一个括号中的字符
8)[a-z] 表示匹配任意一个括号中的两个字符的范围之内的字符
9)以斜杠/开始表示目录,且表示根目录;
10)以斜杠/结束的模式表示只匹配文件夹以及该文件路径下的内容,不匹配该文件;
11)如果一个模式不包含斜杠,则它匹配相对于当前.gitignore文件路径的内容,如果该模式不在.gitignore中,则相对于项目根目录
12)! 表示对.gitignore中的模式进行取反;即:取消对应的忽略,继续追踪对应的文件。
13)git对于.ignore配置文件是按行从上到下进行规则匹配的,意味着如果前面的规则匹配的范围更大,则后面的规则将不会生效;

4.配置实例

4.1 指定忽略文件

a.txt: 忽略所有目录下面的 a.txt 文件
/a.txt: 仅忽略根目录下面的 a.txt 文件(防止递归忽略所有的 a.txt文件)
/f001/aa.class : 具体忽略 某个目录下面的 某个文件
*.txt: 忽略所有目录下面的以 .txt 结尾的文件
**/*.class: 忽略 任意目录下面的 以 .txt 结尾的文件
f1/**.class:忽略与.gitignore文件同目录下的 f1目录下的 所有以.class结尾的文件
f001/**/*.class:忽略 与 .gitignnore 文件同目录的 f001 目录下面任意级目录下的 以.class结尾的文件

4.2 指定忽略目录

/f001_1/: 忽略根目录下面的f001_1目录
f001_1/ : 忽略 所有的 f001_1目录,/f001_1/,/a/b/f001_1/ 等等
f001_1/* : 忽略 与.gitignore 文件同目录下的 f001_1的目录的所有的内容

5.一个完整的.gitignore文件

# 这是一行注释,不会起作用

# 忽略所有目录下面的a.txt文件
#a.txt

# 忽略根目录下面的a.txt文件
#/a.txt

# 忽略 /f001/aa.class文件
#/f001/aa.class

# 忽略所有目录下面的以 .txt 结尾的文件
#*.txt

# 忽略任意目录下面的*.class 结尾的文件
#**/*.class

# 忽略 与.gitignore 文件同目录的 f001_1 目录下面的 以 .class 结尾的文件
#f001_1/*.class

# 忽略 与 .gitignnore 文件同目录的 f001 目录下面任意级目录下的 以 .class结尾的文件
#f001/**/*.class

# 忽略 根目录下面的f001_1的整个目录
#/f001_1/

# 忽略 f001_1/目录下的所有内容
#f001_1/

# 忽略 与.gitignore 文件同目录的 f001_1 目录下面的所有的内容
f001_1/*

6.完成

Congratulation!
You are one step closer to success!

标签:文件,Git,class,忽略,详解,f001,目录,gitignore
来源: https://blog.csdn.net/qq_39505245/article/details/120205100

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有