用 git 保存空目录
git 和 svn 不同,僅僅跟蹤文件的變動(dòng),不跟蹤目錄。Perforce 也是如此。所以,一個(gè)空目錄,如果里面沒有文件,即便 git add 這個(gè)目錄,另外在別處 check out 的時(shí)候,是沒有這個(gè)空目錄的。
只跟蹤文件變化,不跟蹤目錄,這么設(shè)計(jì)是有原因的。但這會(huì)帶來一些小麻煩。有時(shí)候,確實(shí)需要在代碼倉庫中保留某個(gè)空目錄。比如測(cè)試時(shí)需要用到的空目錄。
變通的解決辦法是在空目錄下存一個(gè) .gitignore 文件。然后 git add 此目錄后,相當(dāng)于跟蹤了 .gitignore 文件,產(chǎn)生的“副作用”就是這個(gè)“空”目錄也納入“跟蹤”,最終的效果是可以 check out 出一個(gè)看起來空空的目錄。如果有許多這樣的空目錄,可以用下面的命令自動(dòng)補(bǔ)充 .gitignore 文件:
find . ?typed?empty -and ?not?regex./.git.? -exec touch {}/.gitignore ;
遞歸找尋當(dāng)前目錄下,類型為目錄,且為空,也沒有 .git 開頭的文件,在其中用 touch 新建一個(gè)空的 .gitignore 文件。然后 git add . 之后即可。
如果這些特殊文件會(huì)對(duì)測(cè)試帶來干擾,那就只好在測(cè)試程序運(yùn)行具體測(cè)試項(xiàng)目之前,先跑一段初始化目錄結(jié)構(gòu)的代碼。另外可能還需要編寫負(fù)責(zé)清理的代碼。
git add -A和git add .和git add -u
git add -A 處理所有:添加、修改、刪除
git add . 處理添加和修改,不處理刪除
git add -u 處理修改和刪除,不處理新添加文件
說"git add -A"等于"git add ."加上git add -u"其實(shí)不準(zhǔn)確,只能說功能上前面一個(gè)等于后面兩個(gè),但它們使用的場(chǎng)景不同都有自己的作用。
總結(jié)
以上是生活随笔為你收集整理的用 git 保存空目录的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 制作ubuntu 18.04 U盘启动盘
- 下一篇: Vmware 虚拟机提示:无法打开磁盘*