git lfs migration import似乎不在乎我的.gitattributes

时间:2019-10-01 11:43:46

标签: git git-lfs gitattributes

尝试修复已初始化的存储库时遇到很大麻烦,该存储库的.gitattributes中没有lfs文件类型,例如wav,exr或psd。

我的方法是首先将它们添加到.gitattributes文件中,就像正确注册的文件一样。

  

*。psd过滤器= lfs diff = lfs merge = lfs -text

然后从缓存中删除它们,暂存并提交。

$> git rm --cached -r .
$> git add --all
$> git commit -m "Added a lot of file types as large files"

在分阶段运行后git status可以完美地向我展示所有内容,并且仅显示gitattributes的新文件。看起来很完美。

但是现在我需要重写我相信的所有分支的历史记录。最常见的方法似乎是使用git lfs migrate。所以:

$> git lfs migrate info --everything
migrate: Sorting commits: ..., done
migrate: Examining commits: 100% (299/299), done
*.tga       206 MB    48/48 files(s)    100%
*.exr       108 MB  248/248 files(s)    100%
...Some more

$> git lfs migrate import --everything

在这里,一切都崩溃了。我所有的大文件都很好,我可以打开和编辑它们,但是所有其他文件(未在.gitattributes中注册)现在都是指针! 甚至我的.cs文件和.gitignore都是指针,git lfs ls-files现在向我显示了我的仓库中的每个文件……我的意思是,如果我双击.gitignore,现在会看到类似

  

版本lol://lol.lol.com/lol/v1
  oid sha256:4d7a214614ab2935c943f9e0ff69d22eadbb8f32b1258daaa5e2ca24d17e2393
  尺寸12345

为什么git lfs migrate import不关心我的.gitattributes?为何指针仍会放在存储库的本地副本上?

注意

我读到了--include="*.exr"的内容,但是我在网上找到的大多数用法示例都很好,不包含任何内容。如果大多数使用lfs的人没有脚本而只有大文件,我会感到惊讶。但是,请问这是否是唯一的方法。

谢谢!

0 个答案:

没有答案