git 和 svn 不同,僅僅跟蹤檔案的變動,不跟蹤目錄。perforce 也是如此。
所以,乙個空目錄,如果裡面沒有檔案,即便 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 . 之後即可。
如果這些特殊檔案會對測試帶來干擾,那就只好在測試程式執行具體測試專案之前,先跑一段初始化目錄結構的**。另外可能還需要編寫負責清理的**。
Git提交空目錄
git和 svn不同,僅僅跟蹤檔案的變動,不跟蹤目錄。所以,乙個空目錄,如果裡面沒有檔案,即便 git add 這個目錄,另外在別處 check out 的時候,是沒有這個空目錄的。如果需要在倉庫中保留乙個空資料夾,有兩種方法 vim gitkeep.gitkeep是乙個約定俗成的檔名並不會帶有特殊...
git提交空目錄的方法
大家有時候希望從git倉庫中拉取 時目錄就已經存在了,不需要再手動建立,但是git並不允許git提交空目錄,應該怎麼辦呢?這篇文章通過可能遇到的兩個情況來分別介紹如何解決,有需要的朋友們可以參考借鑑。前言 git和 svn不同,僅僅跟蹤檔案的變動,不跟蹤目錄。所以,乙個空目錄,如果裡面沒有檔案,即便...
git提交空目錄的方法
前言 git和 svn不同,僅僅跟蹤檔案程式設計客棧的變動,不跟蹤目錄。所以,乙個空目錄,如果裡面沒有檔案,即便git add這個目錄,另外在別處check out的時候,是沒有這個空目錄的。只跟蹤檔案變化,不跟蹤目錄,這麼設計是有原因的。但這會帶來一些小麻煩。有時候,確實需要在 倉庫中保留某個空目...