.gitkeep是什麼? .gitignore和.gitkeep之間的區別(譯)

zorro發表於2019-02-17

你是不是在git工程裡遇到過.gitkeep檔案?如果你通過angular腳手架來生成angular2或者angular4工程,你會發現.gitkeep檔案在./src/app/assets資料夾裡。你對著個檔案感到奇怪嗎?我們都知道我們的老朋友.gitignore。你也許會覺得它是.gitignore的兄弟。git提供給我們這個神奇的檔案有什麼特殊的屬性嗎?

.gitkeep是什麼

在知道這件事之前,我們必須要先了解git是不能追蹤空的目錄的。如果你有一個空的目錄,git會對它視而不見。但這是我們想要的一個特性,現在你放一個檔案到這個目錄中,git就能開始追蹤這個目錄了,這個檔案可以是任何東西,這個檔案也可以包含任何東西。

所以.gitkeep是什麼?通常,團隊裡把這個神奇的檔案命名為.gitkeep。其他人就能很容易理解,git這個軟體沒有賦予它其他的特性相對於.gitignore。

現在如果你希望追蹤獲取push一個空的目錄,你只要建立一個.gitkeep檔案就可以,其他的開發者就能很容易理解,一般來說,人們把它用於assets資料夾或者log資料夾(因為一上來這兩個資料夾可能是空的)。注意:千萬不要把.gitkeep寫到.gitignore裡,這樣的話,所有的空目錄都不會被追蹤了,也就提交不了了。

有一小部分團隊會把.gitignore檔案放到空的資料夾中,這樣的話大部分人看到這個檔案就會感到困惑。.gitignore檔案是用來讓git去忽略你版本控制系統中不需要的檔案的。所以也可以利用這個方法,在空目錄中新增一個.gitignore檔案讓git來追蹤他們。

總結:對於空目錄的追蹤我們可以用.gitkeep來做。

相關文章