[Git] Add empty folder
如何提交空資料夾?
最近專案中不斷被問起這件事, 為了日後管理維護方便, 案主期待 git 裡面能夠預先建立對應的資料夾樹.
而 git 設計是無法提交空資料夾, 雖然網路上可以找到一些 hack 的方式可以在 git 裡加入空資料夾, 但可能因不同 git 版本關係, 在 checkout 時無法建立對應資料夾.
通用解法是在該資料夾底下新增一個不影響程式運行的檔案.
常見的有 .gitignore
.gitkeep
README.md
.gitignore
若該資料夾不該保存任何程式資源, 只是為了專案特殊需求而必須存在資料夾,
可新增 .gitignore
檔. 內容範例如後:
$ mkdir <NEW_FOLDER>
$ cd <NEW_FOLDER>
$ vi .gitignore
# Ignore everything in this directory
*
# Except this file
!.gitignore
往後專案開發在該資料夾放任何檔案, commit 時都不會被加入 git 倉儲, checkout 時也不會產生衝突或影響. 適合當作不同環境會有所不同開發測試資源, 臨時資料夾等.
.gitkeep
在資料夾底下新增一個 .gitkeep
的空白檔案, git 就不會認為是空資料夾了.
雖然命名很像 Git 的系統檔案, 但其實不是, 它只是個普通檔案.
這個方式可以保存資料夾, 日後資料夾有檔案增減時, 亦會被提交到專案倉儲.
題外話: 在 gitlab web 上新增資料夾時, gitlab 也是新增 .gitkeep 檔來處理空白資料夾的提交.
$ mkdir <NEW_FOLDER>
$ cd <NEW_FOLDER>
$ touch .gitkeep
README.md
和新增 .gitkeep
一樣, 在空資料夾下新增 README.md
檔案, 就不是空資料夾了.
不同的地方是 .gitkeep
會被視為系統隱藏檔, 大部分開發工具都會忽略它的存在,
而 README.md
則是個一般檔案, 要注意開發工具會不會引用而出錯.
若開發工具不會因為 README.md
出錯, 且專案是多人共同開發,
新增個 README.md
簡單說明一下該空資料夾作什麼用途,
是對團隊較為友善的方式.
$ mkdir <NEW_FOLDER>
$ cd <NEW_FOLDER>
$ vi README.md
WHO CREATED THIS FOLDER
WHY THIS FOLDER EXIST
WHAT THIS FOLDER WORKING FOR