場(chǎng)景描述:uni-app項(xiàng)目初始化之后,創(chuàng)建了.gitignore
,內(nèi)容如下:
node_modules
.DS_Store
然后就開(kāi)始寫代碼了。后來(lái)發(fā)現(xiàn)每次修改內(nèi)容,在unpackage
目錄下都會(huì)生成一堆編譯后的文件,這個(gè)是沒(méi)必要提交到代碼庫(kù)的。在剛開(kāi)始的時(shí)候沒(méi)考慮到把該目錄也添加到.gitignore
中,所以提交了部分該目錄下的文件。
后來(lái)才真正把unpackage
目錄添加到.gitignore
中,但是很快就發(fā)現(xiàn)修改代碼后,unpackage
目錄中的文件居然還會(huì)出現(xiàn)在待提交的git文件中。
網(wǎng)上查找后,發(fā)現(xiàn)git有這樣的一條規(guī)則:.gitignore只忽略那些原來(lái)沒(méi)有被track的文件,如果某些文件已經(jīng)被納入了版本管理中,則修改.gitignore是無(wú)效的
。
知道了問(wèn)題所在,自然就有解決辦法啦:清理之前提交過(guò)的緩存,然后重新提交即可。
進(jìn)入項(xiàng)目根目錄,運(yùn)行命令:
git rm -r --cached .
git add .
git commit -m '更新 .gitignore'
然后再繼續(xù)編寫代碼,發(fā)現(xiàn)unpackage
目錄下的文件再也不會(huì)出現(xiàn)在待提交的git文件列表中啦!
到此,.gitignore 不起作用
的問(wèn)題就完美解決啦!這里的.gitignore 不起作用
并不是完全不起作用,而是對(duì)于那些已經(jīng)被添加版本控制后的文件,如果想要從版本控制中忽略,單純的在.gitignore
中添加相應(yīng)的路徑或文件還是不能起作用的。