在日常中,有些文件我們只想本地使用,不想上傳到遠程倉庫中被別人看到,可如果我們不追蹤這些文件,git status
時Git就會絮絮叨叨的提醒我們工作目錄中一些未跟蹤的文件,所以我們可以通過.gitignore
文件來讓獲得清淨
由於我是在Windows環境下,不能直接創建空文件名的文件,所以去bash
裏創建(移動到所在目錄):
> touch .gitignore
用法:
假如我們要忽略一個臨時文件test.tmp
,那麼在.gitignore
文件中寫入*tmp
即可
《Pro Git》裏對.gitignore
格式規範的解釋:
- 所有空行或者以註釋符號 # 開頭的行都會被 Git 忽略
- 可以使用標準的 glob 模式匹配
- 匹配模式最後跟反斜槓(/)說明要忽略的是目錄
- 要忽略指定模式以外的文件或目錄,可以在模式前加上驚歎號(!)取反
glob模式:
指 shell 所使用的簡化了的正則表達式
星號(*)匹配零個或多個任意字符
[abc] 匹配任何一個列在方括號中的字符(這個例子要麼匹配一個 a,要麼匹配一個 b,要麼匹配一個 c)
問號(?)只匹配一個任意字符
如果在方括號中使用短劃線分隔兩個字符,表示所有在這兩個字符範圍內的都可以匹配(比如 [0-9] 表示匹配所有 0 到 9 的數字)
所以 *tmp
,就是指忽略所有以tmp結尾的文件
再來看一個 .gitignore
文件的例子:
# 此爲註釋 – 將被 Git 忽略
# 忽略所有 .a 結尾的文件
*.a
# 但 lib.a 除外
!lib.a
# 僅僅忽略項目根目錄下的 TODO 文件
# 不包括 subdir/TODO
/TODO
# 忽略 build/ 目錄下的所有文件
build/
# 忽略 doc 目錄下的所有 .txt 文件
# 會忽略 doc/notes.txt
# 但不包括 doc/server/arch.txt
doc/*.txt
在項目一開始就把.gitignore設置好,可避免不必要的文件對代碼產生干擾,比如有些需要本地生成的文件,如果放在遠程倉庫中被其他人下載使用,也可能會導致程序無法正常運行
參考: Crossin的編程教室