Git LFS拒绝正确跟踪我的大文件,直到我做了以下操作

Mik*_*son 12 git github git-lfs

问题

尽管在SO上有很多建议,在Git和GitHub的文档上,以及我遇到过的一些Gists,我仍然在尝试使用git LFS时遇到了麻烦.

我的问题如下:

执行必要的步骤后:

git lfs install
git lfs track "<file of interest>"
git commit
Run Code Online (Sandbox Code Playgroud)

我仍然没有跟踪任何文件.如果我表演了

git lfs ls-files
Run Code Online (Sandbox Code Playgroud)

它会是空白的.如果我继续执行推送,事务将失败,说文件太大.(正如所料,但我很绝望.)

Mik*_*son 23

我的(原创海报)"解决方案"

然后我发现了一些修复,其中一些似乎是错误,其中一些对我来说并不明显.

  1. 似乎为了lfs现有存储库一起使用,需要使用诸如BFG转换器的黑客或第三方工具.

    • 我不想走那条路,所以我只是在本地初始化了一个新的存储库,然后做了将它挂回到真正的回购的挑战.
    • 我创建了一个新目录git init,等等.
      • 就我而言,远程存储库是GitHub.所以我做了所有那些正确的连接,比如git remote add origin git@github.com:<my_id>/<my_repo>.git
  2. 此外,虽然Git的培训视频声称您可以简单地指定一个文件夹,例如"my_folder/",我无法让它工作.因此,我只是巧妙地使用文件扩展名来管理事物.

    • 例如,git lfs track "my_folder/"对我不起作用,但git lfs track "*.zip"确实有效.
  3. 除非我先更新.gitattributes文件,然后将新文件提交并推送到远程服务器,否则我无法正确识别LFS文件.

    • git lfs track "*.zip"
    • git add .gitattributes
    • git commit -m "Updated the attributes"
    • git push
    • git add my_large_file.zip
    • git lfs ls-files
      • 在这里,我会确保我看到my_large_file.zip被跟踪.
    • git commit -m "Now I am adding the large file"
    • git push

有些事情可能有用,我只是做错了.然而,遵循上述巫术终于让LFS工作了,所以我想我会把这些细节传给其他人,以防其他人遇到同样的问题.


Tej*_*ni 10

要跟踪my_foldervia LFS 的所有文件和子目录,您可以执行以下操作:

git lfs track "my_folder/**"
Run Code Online (Sandbox Code Playgroud)

它对我有用。

执行以下操作目前无法跟踪整个my_folder目录:

git lfs track "my_folder/" 
Run Code Online (Sandbox Code Playgroud)

不管用


Pet*_*ter 5

要将文件放在 lfs 上的现有存储库中,您还可以执行以下操作:

git lfs migrate import --include="*.mp3,*.pth"
Run Code Online (Sandbox Code Playgroud)