如何将Framework文件加入Git?如何让Git识别.framework为普通文件?
把Framework添加到Git并让它显示为单个文件的方法
我来帮你搞定这个问题!你遇到的情况是因为macOS里的.framework本质是bundle文件夹,Git默认会把它当成普通文件夹展开显示内部内容,下面是具体的解决步骤:
一、直接添加Framework并让Git视为单个文件
如果这个Framework还没被Git追踪,直接用这条命令添加:
git add --no-recursive MPCheckout.framework
--no-recursive参数会告诉Git不要遍历Framework内部的文件,直接把整个bundle当作单个文件处理。
二、配置全局/项目规则,让所有.framework都自动视为单个文件
要是你希望以后所有的.framework文件都能被Git当作单个文件对待,可以在项目根目录创建或编辑.gitattributes文件,添加这行内容:
*.framework -diff -merge -text
-diff:禁止Git生成这个文件的差异对比(毕竟是二进制bundle,对比也没意义)-merge:禁止Git尝试合并这个文件的冲突-text:告诉Git这不是文本文件,不用处理换行符转换
添加完配置后,再执行git add MPCheckout.framework,Git就会自动把它当作单个二进制文件处理了。
三、如果已经不小心添加了Framework内部文件
要是之前你已经把Framework里的子文件都加到Git里了,得先清理一下追踪记录(不会删除本地文件,放心):
- 先移除内部文件的Git追踪:
git rm -r --cached MPCheckout.framework/*
- 提交这个移除操作:
git commit -m "不再追踪Framework内部文件"
- 然后用前面的方法重新添加整个Framework:
git add --no-recursive MPCheckout.framework
- 最后提交这次更改:
git commit -m "将MPCheckout.framework作为单个文件添加到Git"
做完这些操作后,你在SourceTree里就只会看到MPCheckout.framework这一个条目,不会再显示里面的一堆子文件和文件夹啦~
内容的提问来源于stack exchange,提问作者Kamen Dobrev
相关产品推荐
相关产品推荐

