git lfs 文件一旦被 git 跟踪就无法被 lfs 跟踪

问题描述 投票:0回答:1

我正在尝试将 git LFS 与二进制文件(大小为 200 MB)一起使用。
我想我第一次添加它时搞砸了,所以它是由 git 跟踪的,而不是用 git LFS 跟踪的。
然后我根本无法让 git 使用 LFS 来跟踪它。

我已经丢弃了在没有 LFS 的情况下跟踪文件的提交 (

git reset --hard <commit_id>
),并强制将其推送到远程,同时也删除了推送的提交。
然后我尝试用git LFS添加它,但是
git lfs status
总是显示它不会被LFS跟踪。 (我尝试改变添加 .gitattributes 文件的顺序,将二进制文件复制到存储库中,git 添加文件等。我尝试先提交 .gitattributes,然后提交二进制文件,..)
然后我删除了我所做的提交,从本地存储库中删除了二进制文件,然后创建了一个同名的空文件并使用 LFS 跟踪它(为了测试我的理论,也许问题是 git 记住了这个文件名并跟踪它没有 LFS),我终于看到它确实跟踪它:
binary (LFS: e3b0c44)
。但是当我将二进制文件内容复制到该文件中时,
git lfs status
显示:
binary (LFS: e3b0c44 -> Git: 8a43985)
。这意味着如果我提交它,它不会用 LFS 推送它,对吗?
最后我尝试向该文件附加一个空字节,认为也许 git 会记住该文件内容应该映射到存储库中的普通 git 文件,但结果是相同的,但现在在
Git:
之后有不同的哈希值。 一直以来,文件名都根据 .gitattributes 通过 LFS 进行跟踪。

文件名中有点顺便说一句:

git lfs track "tensorflow-2.13.0-cp310-cp310-linux_x86_64.whl"
。但这不是问题,空版本被LFS跟踪了。

编辑
我又做了一个分支,修改了文件,用LFS上传成功。从那时起,在原始分支上,当我修改二进制文件并执行

git lfs status
时,我得到文件的不同输出:
LFS: <hash> -> File: <other hash> 
。注意
File
而不是
Git
。不知道发生了什么。

git git-lfs
1个回答
0
投票

您是否尝试通过 Git 取消跟踪?

git rm --cached **/*.xlsx
git add .

再次追踪之前通过

git lfs track "**/*.xlsx"
像这样的东西 https://github.com/git-lfs/git-lfs/issues/3421#issuecomment-446074602

© www.soinside.com 2019 - 2024. All rights reserved.