天天看點

【轉載】.gitignore 檔案使用說明

      一般來說,我們總會遇到有些檔案無需納入 git 管理的情況,也不希望它們總出現在未跟蹤檔案清單。通常都是些自動生成的檔案,像是日志或者編譯過程中建立的檔案等等。我們可以建立一個名為 .gitignore 的檔案,列出要忽略的檔案模式,來看一個簡單的例子: 

<a href="http://my.oschina.net/moooofly/blog/190670#">?</a>

1

2

3

<code># cat .gitignore</code>

<code>*.[oa]</code>

<code>*~</code>

      第一行告訴 git 忽略所有以 .o 或 .a 結尾的檔案。一般這類對象檔案和存檔檔案都是編譯過程中出現的,我們用不着跟蹤它們的版本。第二行告訴 git 忽略所有以波浪符(~)結尾的檔案,許多文本編輯軟體(比如 emacs)都用這樣的檔案名儲存副本。此外,你可能還需要忽略 log,tmp 或者 pid 目錄,以及自動生成的文檔等等。要養成一開始就設定好 .gitignore 檔案的習慣,以免将來誤送出這類無用的檔案。 

檔案 .gitignore 的格式規範如下: 

所有空行或者以注釋符号 # 開頭的行都會被 git 忽略。

可以使用标準的 glob 模式比對。

比對模式最後跟反斜杠(/)說明要忽略的是目錄。

要忽略指定模式以外的檔案或目錄,可以在模式前加上驚歎号(!)取反。

      所謂的 glob 模式是指 shell 所使用的、簡化了的正規表達式。星号(*)比對零個或多個任意字元;[abc] 比對任何一個列在方括号中的字元(這個例子要麼比對一個 a,要麼比對一個 b,要麼比對一個 c);問号(?)隻比對一個任意字元;如果在方括号中使用短劃線分隔兩個字元,表示所有在這兩個字元範圍内的都可以比對(比如 [0-9] 表示比對所有 0 到 9 的數字)。

我們再看一個 .gitignore 檔案的例子: 

4

5

6

7

8

9

10

<code># 忽略所有 .a 結尾的檔案</code>

<code>*.a</code>

<code># 但 lib.a 除外</code>

<code>!lib.a</code>

<code># 僅僅忽略項目根目錄下的 todo 檔案,不包括 subdir/todo</code>

<code>/todo</code>

<code># 忽略 build/ 目錄下的所有檔案</code>

<code>build/</code>

<code># 會忽略 doc/notes.txt 但不包括 doc/server/arch.txt</code>

<code>doc/*.txt</code>

其他資訊可以直接 man gitignore 檢視。