39

我想以一种聪明的方式用 lfs 跟踪我的框架。所以这是我对 git lfs 的设置:

*.framework/Versions/A (.gitattributes)
*/*.framework/Versions/A (.gitattributes)
*/{*.framework}/Versions/A (.gitattributes)

但它不起作用。当我跑

"git add ."

lfs 没有跟踪任何文件。

如何解决。谢谢!

4

2 回答 2

43

重要提示:要使 Git LFS 成功运行,该文件可能尚未出现在您的 Git 历史记录中。

强制性步骤:

  1. 通过 brew (或 mac ports..) 安装 Git LFS

    brew install git-lfs

  2. 在 jour 本地 Git 存储库中初始化 LFS。否则您的命令将无效。

    git lfs install

// Updated pre-push hook. Git LFS initialized.

  1. 不要直接跟踪 iOS 框架(例如“opencv2.framework”),因为 macOS 会将其视为文件夹。只需跟踪框架内的一个大二进制文件。

    git lfs track MyProject/Libraries/opencv2.framework/Versions/A/opencv2

// Tracking MyProject/Libraries/opencv2.framework/Versions/A/opencv2

  1. 添加所有文件,包括新生成的“.gitattributes”

    git add .

  2. 提交更改

    git commit -m "added lfs binary"

  3. 现在验证文件是否被 LFS 正确跟踪

    git lfs ls-files

// 604bd36eb5 * MyProject/Libraries/opencv2.framework/Versions/A/opencv2

  1. 推送提交,看到Git先上传大文件

    git push

// Git LFS: (1 of 1 files) 3.54 MB / 87.34 MB

你完成了。

于 2016-07-05T12:05:34.627 回答
5

您可以按照以下步骤将所有框架添加到 git lfs:

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
于 2020-11-03T13:16:12.987 回答