溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

詳解git中配置的.gitignore不生效的解決辦法

發(fā)布時(shí)間:2020-09-05 04:03:40 來(lái)源:腳本之家 閱讀:189 作者:jack_nichao 欄目:服務(wù)器

詳解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ì)本站的支持!

向AI問(wèn)一下細(xì)節(jié)

免責(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)容。

AI