一般項(xiàng)目下載下來都會(huì)有 .gitignore
文件抬旺,不需要特別設(shè)置他膳,但當(dāng)你在開發(fā)中陡鹃,想忽略某個(gè)文件時(shí)究驴,就需要把這個(gè)文件路徑添加到.gitignore
文件中仪糖,但可能有時(shí)候可以成功忽略有時(shí)候又不可以听绳,這是為什么呢醒叁?
加入.gitignore
中的文件路徑是否生效灾炭,關(guān)鍵在于這個(gè)路徑下的文件性質(zhì)夫植,是不是untracked
讹剔。
什么是untracked
的文件?在本地一個(gè)新建的文件详民,未執(zhí)行git add
之前就是untracked
(當(dāng)然延欠,前提是編輯器不會(huì)在創(chuàng)建文件時(shí)自動(dòng)幫你執(zhí)行git add
),那么這個(gè)新建的文件直接將路徑添加到.gitignore
中沈跨,即可生效由捎。
但如果一個(gè)文件已經(jīng)執(zhí)行過git add
或者 git commit
,或者不是本地新建文件饿凛,加入.gitignore
中就無法生效狞玛,需要重新恢復(fù)untracked
狀態(tài)才行。
如果恢復(fù)一個(gè)文件為untracked
涧窒,很簡(jiǎn)單心肪,刪除,然后在本地新建(記得提前備份)杀狡,可以使用
git rm --cached <file>
刪除蒙畴,這個(gè)時(shí)候文件就是untracked
。
但通常本地文件untracked
了,但遠(yuǎn)程同名文件還是tracked
膳凝,一更新代碼就覆蓋了碑隆,這個(gè)就需要把遠(yuǎn)程的tracked
的文件刪掉。
下面舉個(gè)例子:
遠(yuǎn)程文件庫front
根目錄下local.js
蹬音,代碼下載下來也有個(gè)/d/front/local.js
上煤,這個(gè)時(shí)候你可能需要修改local.js
做個(gè)性化配置,/d/front/.gitignore
文件中沒有添加local.js
著淆,但你希望git
能忽略local.js
劫狠。
// 在項(xiàng)目根目錄下,首先copy一份local.js
zy@DESKTOP-MIQKPJL MINGW64 /d/front/local.js
$ cp local.js local_default.js
// 編輯 .gitignore 永部, 將 local.js路徑加進(jìn)入
$ vim .gitignore (不熟悉vim独泞,可在編輯器中編輯)
// 刪除本地local.js
$ git rm --cached lcoal.js
// 提交修改,刪除遠(yuǎn)程local.js
$ git status
$ git add .
$ git commit -m "add local.js to gitignore"
$ git push
// 重新pull下代碼
$ cp local_default.js local.js
// 現(xiàn)在苔埋,這個(gè)新建的local.js 可以在本地隨便更改了