.gitignore无法忽略GoogleService-Info.plist文件,求排查原因
为什么Git忽略GoogleService-Info.plist的规则不生效?
以下是几个常见的问题原因及解决办法:
文件已被Git追踪
如果这个文件之前已经被提交到仓库中,.gitignore的规则对它完全无效——因为.gitignore只管控未被Git记录过的文件。
解决方法:执行命令git rm --cached GoogleService-Info.plist,这个操作会把文件从Git的追踪列表中移除,但保留本地的文件。之后提交这个变更,后续该文件就会被规则管控。规则路径匹配错误
你写的/GoogleService-Info.plist只会匹配项目根目录下的同名文件。如果你的GoogleService-Info.plist放在子目录(比如ios/或者app/)里,这个规则就找不到它。
解决方法:- 要忽略所有目录下的同名文件,去掉开头的斜杠,写成
GoogleService-Info.plist; - 要忽略特定子目录下的文件,写完整路径,比如
ios/GoogleService-Info.plist。
- 要忽略所有目录下的同名文件,去掉开头的斜杠,写成
.gitignore文件位置错误
.gitignore必须放在项目的根目录(和.git文件夹同级),如果放在子目录里,它的规则只会对该子目录及以下的文件生效,根目录或其他子目录的同名文件不会被管控。Git缓存干扰
偶尔Git的缓存会导致新添加的.gitignore规则不立即生效,可以先清理缓存预览:git clean -n,确认要清理的内容无误后,执行git clean -f删除未被追踪的文件(注意:这个操作会删除本地未提交的未追踪文件,操作前务必确认)。
内容的提问来源于stack exchange,提问作者Tom
相关产品推荐
相关产品推荐

