git - 在常规 Git 下移动 Git LFS 跟踪文件

标签 git git-lfs

我有一个项目,我使用 Git LFS 存储视频文件。现在,我的构建服务器还不支持 Git LFS,但遇到了一些问题。由于它是一项外部服务,我不能真正影响构建过程,因此我想将文件从 Git LFS 下移回“常规”Git。我设法用 git lfs untrack '<file-type>' 取消跟踪文件类型但是git lfs ls-files仍然给出之前添加的文件列表。

我想我可以删除文件,推送更改,然后手动重新添加它们,但这真的是推荐的做事方式吗?

最佳答案

我最近遇到了这个问题, Assets 被意外添加到一个不应该添加的分支上的 git-lfs 中。我的解决方案是:

git lfs untrack '<file-type>'
git rm --cached '<file-type>'
git add '<file-type>'
git commit -m "restore '<file-type>' to git from lfs"

结果是用标准文件内容重写了 git-lfs oid sha256 指针。


(编辑 2019-03):已接受的答案已更改,以便为更简单的案例提供简单的解决方案。另见 edits in the answer by VonC如果您手头有更复杂的案例,可以使用替代解决方案。

关于git - 在常规 Git 下移动 Git LFS 跟踪文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35011366/

相关文章:

git - Makefile:比较 git tag 和 package.json 中的两个版本字符串值

git - 如何克隆包含 Git LFS 文件的存储库?

git - git lfs pull 是否可以忽略某些文件/文件夹?

GIT 仅 pull 项目文件而不 pull LFS 模块

Ubuntu 版本之间的 Git checkout

git 状态不能与 Virtualbox 共享文件夹一起正常工作

git - 将主控转发到标签

git flow release finish -m 在 cmd 和 Git Bash 中给出不同的行为

Git lfs(大文件存储)说 lfs 管理的文件在 git lfs pull 之后被修改

Git LFS 跳过文件