如何使用GIT LFS跟踪iOS框架?

时间:2016-02-16 10:42:20

标签: ios git git-lfs

我希望通过智能方式使用lfs跟踪我的框架。所以这是我对git lfs的设置:

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

但它不起作用。我跑的时候

"git add ."

没有lfs跟踪的文件。

如何解决这个问题。 谢谢!

2 个答案:

答案 0 :(得分:25)

重要提示:要成功使Git LFS正常运行,该文件可能不在您的Git历史记录中。

强制性步骤:

  1. 通过brew(或mac ports ..)

    安装Git LFS

    brew install git-lfs

  2. 在jour local Git repo中初始化LFS。否则你的命令将无效。

    git lfs install

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

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

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

    2. // 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

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

        1. 按下提交,看到Git首先上传大文件

          git push

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

          你已经完成了。

答案 1 :(得分:0)

您可以按照以下步骤将所有框架添加到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