當我們用git時常常會習慣把我們不想上傳到遠端**庫中的一些本地檔案(夾)放在乙個叫做.gitignore的檔案中,例如常見的本地build資料夾,一些ide如intellig,eclipse的專案管理檔案,但有些時候我們會遇到這樣的問題:放入gitignore資料夾中的檔案卻還是被git index, 當你通過git status
顯示檔案狀態時,他們並沒有被忽略。
問題場景
當你在git庫中編寫某些**檔案,並已經stage該檔案之後,你發現某個檔案你不想用了,想在以後的改變中忽略它。然後你再你的.gitignore檔案中加入該檔名,結果它並沒有被忽略。
當你從遠端**庫中git clone
乙份**中本地並做些修改,build,然後通過git add .**等stage了這些改變,當你通過git status
檢視狀態時發現不小心把build/資料夾給add進來了。於是你在.gitignore檔案中加入了build/,但發現並不起作用。
根本原因
**.gitignore檔案只是ignore沒有被staged(cached)檔案,對於已經被staged檔案,加入ignore檔案時一定要先從staged移除。下面這段話來自github:
.gitignore檔案不工作
因此,要想用gitignore忽略檔案,必須先把它們從staged中移除:
commit你已有的改變,儲存當前的工作。
git rm --cached file/path/to/be/ignored。
git add .
git commit -m "fixed untracked files"
gitignore檔案不起作用
今天commit 的時候,使用git status檢視檔案狀態,發現專案列印的日誌logs目錄也有被修改。那麼logs目錄下的日誌檔案是我們不需要提交的,那就在.gitignore目錄下新增要忽略的目錄 logs 接著使用git status檢視檔案狀態,並沒有生效。gitignore檔案只是ign...
gitignore不起作用
gitignore中已經標明忽略的檔案目錄下的檔案,git push的時候還會出現在push的目錄中,原因是因為在git忽略目錄中,新建的檔案在git中會有快取,如果某些檔案已經被納入了版本管理中,就算是在.gitignore中已經宣告了忽略路徑也是不起作用的,這時候我們就應該先把本地快取刪除,然後...
修改 gitignore 發現不起作用
新建了專案,編寫 後,目錄下都會生成一堆編譯後的檔案 pyc 都是不需要提交的 在剛開始的時候沒考慮到把該目錄也新增到.gitignore中,所以提交了部分該目錄下的檔案。這個時候把不需要的目錄新增到.gitignore中,發現修改後,這些檔案居然還會出現在待提交的git檔案中 原來 gitigno...