.gitignore文件不起作用

原文地址: http://t.hengwei.me/post/gitignore%E6%96%87%E4%BB%B6%E4%B8%8D%E8%B5%B7%E4%BD%9C%E7%94%A8/


當我們用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中移除:

  1. commit你已有的改變,保存當前的工作。
  2. git rm --cached file/path/to/be/ignored。
  3. git add .
  4. git commit -m "fixed untracked files"

-引用

[1]. gitignore-not-working
[2]. ignoring file


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章