详解Git中的.gitignore文件

1.什么是.gitignore文件?有什么作用?

在Git中,有一种特殊的文件,其文件全名就是 .gitignore,这个文件可以用txt打开,主要功能是屏蔽某些文件,使得这些文件不被追踪(tracked),自然push后也不会上传到github等平台。

2.有什么规则?

(1)# content

开头以‘#’的行在.gitignore中起注释作用,所以'#’后的content在.gitignore中不起任何作用。

(2)/ToDo

以'/'开头的表示仅屏蔽当前文件夹ToDo下的文件。需要注意的是空文件夹不会被追踪。

|--.gitignnore

|--ToDo--test0.txt

|--TooDo--|---ToDo--test1.txt

|--TDoo

|--testGit.txt

|--license.txt

在上述文档结构下,test0.txt将被屏蔽,test1.txt不会被屏蔽,即显示TooD未被追踪,TDoo由于是空文件夹,所以也不会被追踪,而testGit.txt和license.txt已被提交,所以也不是未被追踪。

验证如下:

(3)ToDo/

以'/'结尾的表示屏蔽所有名为ToDo文件夹下的文件下的文件都会被屏蔽。

|--.gitignnore

|--ToDo--test0.txt

|--TooDo--|---ToDo--test1.txt

|--TDoo

|--testGit.txt

|--license.txt

在上述文档结构下,test0.txt和test1.txt均会被屏蔽,即没有被追踪的,而testGit.txt和license.txt已被提交,所以也不是未被追踪。

验证如下:

(4)!a.a

忽略a.a,即对a.a也追踪,一般搭配*.a,而*.a解释见下面一条。

(5)*.a

屏蔽所有扩展名为a的文件,如1.a, 2.a等。

|--.gitignnore

|--ToDo--test0.txt

|--TooDo--|---ToDo--test1.txt

|--TDoo--2.a

|--1.a

对如上文档结构,由于屏蔽了1.a, 2.a所以追踪到test0.txt和test1.txt,即追踪ToDo,TooD文件夹。

 

(6)*.[abc]

屏蔽所有扩展名为a,或者b或者c的文件。

|--.gitignnore

|--ToDo--test0.txt

|--TooDo--|---ToDo--test1.txt

|--TDoo--2.b

|--1.a

对如上文档结构,由于屏蔽了1.a, 2.b所以追踪到test0.txt和test1.txt,即追踪ToDo,TooD文件夹。

验证如下:

(7)*.a?

屏蔽所有扩展名以a开头,且扩展名只有2个字符的文档。?表示一个字符

|--.gitignnore

|--ToDo--5.abc

|--TooDo--|---ToDo--6.a

|--TDoo--4.ab

|--1.a

|--2.ab

|--3.abc

在上述文档结构中,2.ab,4.ab被屏蔽,其他的都被追踪。

(8)[0-9].txt

屏蔽0.txt,1.txt,2.txt...9.txt。

(9)doc/**/*.p

屏蔽doc下所有扩展名为p的文件。**表示嵌套路径,即doc下的多层路径。

|--.gitignore

|--5.p

|--doc|--1.p

    |--TDoo--4.p

    |--ToDo--3.p

          |--TooD--ToDo--2.p

在如上文档结构中,1.p,3.p,4.p被屏蔽,5.p由于不在doc文件下,被追踪。

posted @ 2020-03-19 22:04  JohnYang819  阅读(10108)  评论(0编辑  收藏  举报