背景
在使用腾讯 IMSDK 时, 通过Pod依赖了对应的库, Pods 文件夹在.gitignore
中配置忽略, 但是需要修改IM SDK 的源代码, 又怕重新安装后被覆盖, 所以想要针对 腾讯 IMSDK, 在.gitignore
中设置不忽略, 怎么做呢?
实现
设置如下:
1 |
|
设置之后, 如果发现没有生效, 可以通过下面的命令校验:
1 |
|
如下图, 第一次校验, 提示.gitignore
中某行导致被忽略, 然后修改, 再次运行, 没有结果,说明已经成功
原理
.gitignore忽略规则的匹配语法如下:
1 | 在 .gitignore 文件中,每一行的忽略规则的语法如下: |
需要谨记:git对于.ignore配置文件是按行从上到下进行规则匹配的,意味着如果前面的规则匹配的范围更大,则后面的规则将不会生效;
十分重要:如果你不慎在创建.gitignore文件之前就push了项目,那么即使你在.gitignore文件中写入新的过滤规则,这些规则也不会起作用,Git仍然会对所有文件进行版本管理。简单来说出现这种问题的原因就是Git已经开始管理这些文件了,所以你无法再通过过滤规则过滤它们。所以大家一定要养成在项目开始就创建.gitignore文件的习惯,否则一单push,处理起来会非常麻烦。
1 |
|
如果发现.gitignore
不生效, 参考: .gitignore文件中的忽略规则, 可尝试如下操作:
1 | 1,git rm -r --cached . |
原因是: 当 .gitignore 文件配置好后,往往不能失效。这是因为 .gitignore 只能忽略那些没有被追踪(track)的文件,因为 git 存在本地缓存,如果文件已经纳入了版本管理,那么修改 .gitignore 是不能失效的。那么解决方案就是要将 git 的本地缓存删除,然后重新提交。