git系列:gitignore

1、什麼是 gitignore

  git是一個版本控制工具,不過在工作目錄中,並不是所有的文件都是需要做版本控制的,比如說編譯產生的字節碼文件,這種文件是不需要做版本管理,也不需要上傳到github中的,但是我們又不想每次上傳的時候手動刪除這些文件,於是就有了gitignore文件,記錄在文件中每一行都是一個規則,git根據這個規則,決定哪些文件做版本控制,這樣我們就可以選擇性的決定哪些文件做版本控制。

2、gitignore的語法

標識 描述
空白行 不匹配文件
# 表示註釋
\ 轉義字符,如果在#前面放,則表示一個字符,而非註釋
\空格 轉義空格
表示不匹配的規則,也就是此規則下的文件將會被追蹤
\! 放在開頭表示轉義!,僅表示!字符
? 匹配單個字符
* 匹配任意多個字符
** 匹配任意目錄深度
[123] 匹配其中的一個字符
[1-9] 匹配1到9中的一個

3、gitignore實例

​ 當文件或文件夾匹配到gitignore文件中的規則時,git將不會對這些文件/文件夾進行版本管理。

3.1 空文件夾

​ 默認空文件夾不會被匹配

3.2 全局文件/文件夾匹配

abc

​ 會匹配工作空間中所有名爲abc的文件和文件夾

abc/

​ 匹配全局所有的名爲abc的文件夾,但是名爲abc的文件不會被匹配到

*abc

​ 匹配全局所有的末尾字符爲abc的文件和文件夾

*abc/

​ 匹配全局所有的末尾字符爲abc的文件夾

**/abc

​ 匹配全局所有的名爲abc的文件和文件夾

**/abc/

​ 匹配全局所有的名爲abc的文件夾

**/a[bc]/

​ 匹配全局所有的名爲ab, ac的文件夾

3.3 局部匹配

/abc

​ 匹配項目根目錄名爲abc文件和文件夾

/abc/

​ 匹配項目根目錄名爲abc文件夾

/abc/*
/abc/**

​ 匹配abc目錄下所有文件和文件夾

abc/bcd

​ 匹配根目錄中abc目錄下名爲bcd文件和文件夾

abc/bcd/

​ 匹配根目錄中abc目錄下名爲bcd文件夾

a/**/b

​ 匹配全局所有的形式如上的文件和文件夾,例如a/f/b, a/y/b/

a/**/b/

​ 匹配全局所有的形式如上的文件夾,文件會忽略

/a/**/b

​ 從根目錄開始,先匹配根目錄下的文件夾a,然後匹配全局所有的形式如上的文件和文件夾,例如a/f/b, /a/y/b/

/a/**/b/

​ 從根目錄開始,先匹配根目錄下的文件夾a,然後匹配全局所有的形式如上的文件夾,例如a/f/b, /a/y/b/

3.4 帶空格的文件名與路徑匹配

​ 如果一個文件文件名中帶有空格,需要使用\轉義

\space+文件名

​ 路徑同理

3.5 不匹配規則

​ 上面的規則,如果前面加上!,則表示哪些文件或文件夾需要被git進行版本管理,常見的用法如下:

/abc/**
!/abc/name.txt

​ 第一句,我們將/abc下的所有文件匹配到,git將忽略這些文件、文件夾,不過第二句表示git將會對/abc/name.txt文件進行版本管理。

特別注意:git讀取規則的時候是從上往下的,所以說,忽略匹配一定要在匹配規則之後纔會生效!

4、相關資料與鏈接

git官方解釋文檔 : gitignore

pro git 中文版: Pro Git v2

git官方實例文件: github官方實例

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章