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)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 声明:这篇文章来源于廖雪峰老师的官方网站,我仅仅是作为学习之用 Git简介 Git是什么? Git是目前世界上最先...
    横渡阅读 9,375评论 3 27
  • 本文为 Git教程的学习笔记,教程源自廖雪峰的博客。这是一个由浅入深,学完后能立刻上手的Git教程。另,附上另一本...
    七弦桐语阅读 11,377评论 5 47
  • 和饼宝在重庆的四天可以用迷失在重庆形容🤠 首先...本来的计划是23号早上坐动车过来...六点多早起去赶车...到...
    往事若无其事阅读 2,990评论 0 0
  • 对你的记忆还停留在六年前的那场盛夏,八月长安,焦躁的日光透过树叶的罅隙,厚厚的打在路人的脸上,柏油路散发的味道刺鼻...
    夏初晨阅读 5,055评论 8 11
  • 《月亮与六便士》——月亮是那崇高而不可及的梦想,六便士是为了生存不得不赚取的卑微收入,多少人只是胆怯地抬头看一...
    蜗牛Zoe阅读 4,419评论 0 0