我想以智能的方式使用lfs跟踪我的框架。这是我为git lfs设置的内容:
*.framework/Versions/A (.gitattributes)
*/*.framework/Versions/A (.gitattributes)
*/{*.framework}/Versions/A (.gitattributes)
但它不起作用。当我运行时
"git add ."
没有通过LFS跟踪的文件。
如何解决这个问题。谢谢!
重要提示:为了成功地使Git LFS工作,文件在您的Git历史记录中可能不存在。
必要步骤:
通过brew(或mac ports..)安装Git LFS
brew install git-lfs
在本地的Git repo中初始化LFS。否则您的命令将没有效果。
git lfs install
// 以前的推送钩子已更新。 Git LFS已初始化。
不要直接跟踪iOS框架(例如“opencv2.framework”),因为macOS将其视为文件夹。只需跟踪框架内部的一个大型二进制文件。
git lfs track MyProject/Libraries/opencv2.framework/Versions/A/opencv2
// 跟踪MyProject/Libraries/opencv2.framework/Versions/A/opencv2
添加所有文件,包括新生成的“.gitattributes”
git add .
提交更改
git commit -m“添加了LFS二进制文件”
现在验证该文件是否被LFS正确跟踪
git lfs ls-files
// 604bd36eb5 * MyProject/Libraries/opencv2.framework/Versions/A/opencv2
推送提交并查看Git是否首先上传大文件
git push
// Git LFS:(1个文件中的1)3.54 MB / 87.34 MB
完成。
brew install git-lfs # install via homebrew
git lfs install # initialize lfs for yor repo
git lfs track ios-app/Frameworks/*.framework/**/* # track all frameworks in your project
git add --all # stage
git commit -m "Added files to git lfs" # commit
git lfs ls-files # check that files are tracked
最终你应该得到以下结果:
9ee501fdc8 * ios-app/Frameworks/Lottie.framework/Headers/Lottie-Swift.h
8fa3ecc835 * ios-app/Frameworks/Lottie.framework/Info.plist
4a870aa4cc * ios-app/Frameworks/Lottie.framework/Lottie
请注意,这将不会将任何现有的文件转换为 Git LFS(从其他分支或之前的提交历史记录中)。如果要执行此操作,请使用 git lfs migrate 命令:
git lfs migrate import --include='ios-app/Frameworks/*.framework/**/*' --everything
*.xcframework/**/*
而不是仅使用*.xcframework
有所帮助。谢谢! - kelin
git lfs track "*.framework"
或者git lfs track 'path/to/frameworks/**/*'
吗? - JAL