[Git]06 如何提交空目錄
git和 svn不同,僅僅跟蹤檔案的變動,不跟蹤目錄。所以,一個空目錄,如果裡面沒有檔案,即便 git add 這個目錄,另外在別處 check out 的時候,是沒有這個空目錄的。
只跟蹤檔案變化,不跟蹤目錄,這麼設計是有原因的。但這會帶來一些小麻煩。有時候,確實需要在程式碼倉庫中保留某個空目錄。比如測試時需要用到的空目錄。
變通的解決辦法是在空目錄下存一個 .gitignore檔案。然後 git add此目錄後,相當於跟蹤了 .gitignore檔案,產生的“副作用”就是這個“空”目錄也納入“跟蹤”,最終的效果是可以
check out出一個看起來空空的目錄。如果有許多這樣的空目錄,可以用下面的命令自動補充 .gitignore
$ find . \( -type d -empty \) -and \( -not -regex ./\.git.* \) -exec touch {}/.gitignore\;
遞迴找尋當前目錄下,型別為目錄,且為空,也沒有 .git開頭的檔案,在其中用 touch新建一個空的 .gitignore檔案。然後 git add .之後即可。
如果這些特殊檔案會對測試帶來干擾,那就只好在測試程式執行具體測試專案之前,先跑一段初始化目錄結構的程式碼。另外可能還需要編寫負責清理的程式碼。