昨天把新公司的項目提交到了 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
來源:簡書
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。
