您好,登錄后才能下訂單哦!
詳解git中配置的.gitignore不生效的解決辦法
前言:
通常我們希望放進(jìn)倉(cāng)庫(kù)的代碼保持純凈,即不要包含項(xiàng)目開(kāi)發(fā)工具生成的文件,或者項(xiàng)目編譯后的臨時(shí)文件。但是,當(dāng)我們使用git status查看工作區(qū)狀態(tài)的時(shí)候,總會(huì)提示一些文件未被track。于是,我們想讓git幫助我們忽略這些文件,不再提醒。
慶幸的是,git已經(jīng)考慮到這點(diǎn)了。我們可以在項(xiàng)目的根目錄下建立一個(gè).gitignore的文件,該文件用來(lái)配置哪些文件或者目錄不被track的。規(guī)則很簡(jiǎn)單,就在該文件中,寫(xiě)下你不想被track的文件,一行一個(gè)。空行和#開(kāi)頭的行將被過(guò)濾掉。
下面給出一個(gè)小例子來(lái)說(shuō)明.gitignore文件的用法:
#這里可以寫(xiě)下注釋?zhuān)员砻鬟@條規(guī)則的目的。 如下例子,表明不再track hello.class這個(gè)文件,應(yīng)為這個(gè)是編譯生成的文件,我們只要有源代碼就可以生成該文件hello.class #我們也可以使用通配符,下面例子表明不再track所有以class結(jié)尾的文件 *.class #使用!表示特例,表示在前面的規(guī)則應(yīng)當(dāng)排除指定的特殊文件。 #下面例子表示register.class不適用*.class這條規(guī)則,應(yīng)該被提醒track !register.class #也可以對(duì)一個(gè)目錄進(jìn)行處理,以下例子表明testDir中的所有文件或者目錄都不被track testDir/ #也可以?xún)H僅對(duì)一個(gè)目錄下的文件進(jìn)行處理,如下面例子表明testDir2目錄下的所有以doc結(jié)尾的文件不被track,其他的文件將被提醒track,如/testDir2/hello.txt /testDir2/*.doc
正常情況下,這樣配置之后就可以了。但是有些時(shí)候,我們發(fā)現(xiàn)配置的某個(gè)選項(xiàng)不起作用,這是為什么尼?明明配的沒(méi)有問(wèn)題呀,讓人覺(jué)得很納悶。
其實(shí)真正的原因是.gitignore只能忽略那些尚未被被track的文件,如果某些文件已經(jīng)被納入了版本管理中,則修改.gitignore是無(wú)效的。一個(gè)簡(jiǎn)單的解決方法就是先把本地緩存刪除(改變成未track狀態(tài)),然后再提交。
git rm -r --cached . git add . git commit -m 'update .gitignore'
如有疑問(wèn)請(qǐng)留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。