Git 中.gitignore 使用和.gitignore 無效的解決方法


昨天把新公司的項目提交到了 GitLab 上,感覺 GitLab 創建項目很簡潔並沒有看到設置 Git版本忽略文件的選項。
然后就直接提交了上去。可是煩人的事來了,Xcode 的緩存文件和一些系統目錄緩存文件不斷出現更改。

實在不忍直視,然后到項目目錄下:

// 1 新建 .gitignore文件 touch .gitignore >// 2 然后打開文件 open .gitignore >// 3 添加忽略信息並保存 # OS X .DS_Store # Xcode build/ *.pbxuser !default.pbxuser *.mode1v3 !default.mode1v3 *.mode2v3 !default.mode2v3 *.perspectivev3 !default.perspectivev3 xcuserdata *.xccheckout profile *.moved-aside DerivedData *.hmap *.ipa # Bundler .bundle >``` 可是居然沒有效果,后來谷歌才知道: >.gitignore只能忽略那些原來沒有被 track 的文件,如果某些文件已經被納入了版本管理中,則修改 .gitignore 是無效的。 解決方法是先把本地緩存刪除,然后再提交。 

git rm -r --cached .
git add .
git commit -m 'We really don't want Git to track this anymore!'

如果緩存中有重要的數據更改,那么你需要單獨刪除不要的緩存:

git rm --cached logs/xx.log

補充一下 .gitignore 的匹配規則: 

此為注釋 – 將被 Git 忽略

.a # 忽略所有 .a 結尾的文件
!lib.a # 但 lib.a 除外
/TODO # 僅僅忽略項目根目錄下的 TODO 文件,不包括 subdir/TODO
build/ # 忽略 build/ 目錄下的所有文件
doc/
.txt # 會忽略 doc/notes.txt 但不包括 doc/server/arch.txt


參考
[Git 忽略已經被提交的文件](https://segmentfault.com/q/1010000000430426) [Git 忽略規則及 .gitignore 規則不生效的解決辦法](http://www.pfeng.org/archives/840)
 


作者:JohnnyB0Y
鏈接:https://www.jianshu.com/p/e5360fa04152
來源:簡書
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM