當我們用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忽略文件,必須先把它們從staged中移除:
commit你已有的改變,保存當前的工作。
git rm --cached file/path/to/be/ignored。
git add .
git commit -m "fixed untracked files"
引用
**[1]. gitignore-not-working[2]. ignoring file
原文鏈接:http://www.jianshu.com/p/4a1f4b324823
著作權歸作者所有,轉載請聯系作者獲得授權,並標注“簡書作者”
