詳解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文件下,被追蹤。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM