使用 git 做代碼管理工具時,設定 gitignore 是必不可少的流程,一些系統或者 IDE 會在目錄下生成與項目不相關的檔案,而這些檔案我們不期望被送出到倉庫之中。了解 gitignore 的 pattern 規則十分重要。我要說話
Pattern 規則
關于 Pattern 規則,可以檢視 git 的相關文檔:http://git-scm.com/docs/gitignore,大緻有以下幾點:我要說話
- 空行不比對任何内容,是以可以作為塊分隔符;
-
開頭表示注釋,如果相比對#
,可以在前面加一個反斜杠,即#
;\#
- 除非加了反斜杠,否則一連串的空格會被忽略;
- 如果在比對的内容前面加上
,則這些比對過的部分将被移出,如果要比對以!
開頭的内容,需要加上反斜杠,如!
\!important.txt
- 如果一個比對 pattern 後面有一個斜杠,如
,則預設會比對所有(包含父子檔案夾)中的 foo 檔案夾内容,并且它不會比對單個的檔案;foo/
- 如果一個比對 pattern 不包含斜杠,如
,Git 會将其作為一個 shell 的查找指令比對内容。foo
需要注意的
**
:我要說話
- 如果一個 pattern 以
開頭,如**
,最後會比對所有檔案夾下的 foo 檔案(夾);**/foo
-
/**
,則表示比對 abc 目錄下的所有内容;abc/**
- 如果一個 pattern 中間包含
,如**
,則會比對a/**/b
、a/b
a/x/b
以及所有類似的内容。a/x/y/b
gitignore 相關的問題
比對示例
如果我們要比對 ‘foo’ 目錄下除去 ‘foo/bar/‘ 的内容,可以這樣做:我要說話
|
如果要比對所有目錄下的 node_modules 檔案夾,隻需要這樣做:我要說話
|
如果要比對所有的 json 檔案,可以這樣做:我要說話
|
git 操作中,add 之後再加入 gitignore
Git 操作中經常會出現這樣的問題,當我們
git add
之後,突然想起來要添加一個 gitignore 檔案,但是一些諸如 node_modules/, cache/ 等檔案已經被 add 進去了,這些檔案不會被 ignore 掉,怎麼辦?我要說話
最直接的方式是:我要說話
|
git 添加空檔案夾
Git 預設是不添加空檔案夾的,如果一定要加入這個檔案夾,有以下方案:我要說話
1)在檔案夾添加檔案,然後删除我要說話
2)在檔案夾中添加一個
.gitkeep
檔案我要說話
讓 git 不要添加 gitignore 檔案
如果在 .gitignore 檔案中添加我要說話
|
|