如何在存储库中停止使用Git LFS

Pat*_*ick 5 git bitbucket acquia git-lfs

我最近在主存储库中设置了Git LFS,到目前为止,它没有任何问题。最重要的是,我们仅将其设置为阻止单独构建回购上的膨胀效果(为了支持新流程而逐渐消失)。

此时的主要问题(以及其他问题)是,我们试图开始将构建从主存储库推送到Acquia存储库(这是Acquia部署所必需的)。Acquia不支持Git LFS,因此我没有时间与之抗争,也没有与可能影响这种变化的任何人争辩主机解决方案的优点(这是我们已经拥有并有一段时间了)。

我只想删除它,似乎只删除了一部分。似乎在线文档充其量也很少。

这是我所做的:

  1. git lfs untrack *
  2. 然后 git lfs uninstall
  3. 最后,我将.gitattributes文件还原到先前的状态

我把它推高了,在本地看来,它消除了很多对象跟踪(通过我进入.git/lfs并扎根文件夹结构的优点)。跑步git lfs ls-files根本不显示任何信息。

但是,当我将其拉到一个单独的克隆中时,当我尝试推送到Acquia时,它仍然显示有上千个文件仍在跟踪中,但由于Acquia不支持该文件而失败。迷人,我知道。

我怀疑完全删除它会删除该.git/lfs目录或至少其中的内容。如果没有别的,它应该消除克隆中的跟踪,从而拉下更改。它不是。

我认为我可能缺少将文件指针改回原来状态的步骤,但是我不确定我还能安全地做什么。我想保持它跟踪的文件。我的回购托管在Bitbucket云上。

Sha*_*ail 2

来自 GitHub,并且也遵循您所采取的步骤,

\n

https://github.com/git-lfs/git-lfs/issues/3026

\n
git lfs uninstall\n
Run Code Online (Sandbox Code Playgroud)\n

这将删除挂钩和污迹/清洁过滤器配置\n这只是开始,mua-ha-ha

\n

我们如何重新索引/重新提交 lfs\'d 文件来恢复它们???

\n

您可以从 .gitattributes 中删除条目并触发每个 lfs 文件都不同的 git 索引,然后添加并提交这些文件。这与更改 git 存储库中的自动换行符的过程相同。我必须对此进行一些测试,但这可能会让您朝着正确的方向前进。唯一的问题是您不想先重置 .gitattributes 文件。\n我刚才读到的好消息是,这必须在 .gitattributes 步骤之前完成

\n

但我们到底该怎么做呢?(当然不想意外更改我所有的换行符,哈哈)

\n

好的,本期有一些关于方法论的讨论

\n
git lfs ls-files \xe2\x80\x94 view lfs files\n
Run Code Online (Sandbox Code Playgroud)\n

对于每个文件,如果可以的话,请使用 glob:

\n
git rm --cached myfile.psd \xe2\x80\x94 "remove" the lfs file\ngit add myfile.psd \xe2\x80\x94 add the "normal" file\ngit commit -m "restore files from lfs"\n
Run Code Online (Sandbox Code Playgroud)\n

让我知道这是否有意义

\n
remove lfs .gitattribute entries\n
Run Code Online (Sandbox Code Playgroud)\n

这显然会阻止 lf​​s 复活

\n

我们如何删除通过 git lfs ls-files 查看的剩余文件???\n我猜我们git lfs untrack一次删除一个文件

\n

不,取消跟踪不会删除它们...嗯...它有什么作用?

\n

也许一旦我弄清楚第2步,这就会完成

\n

是的,第 2 步就解决了这个问题

\n

我们告诉其他贡献者做什么???\n我猜他们只需要这样做git lfs uninstall?\n他们还需要git lfs untrack存储文件或类似的东西吗?

\n

另外,我没有兴趣在这里重写 git 历史,那很愚蠢......我只想在解决这个问题后与我的合作者一起前进

\n

  • @Shaqil,不要复制并粘贴整个 GitHub 评论,请仅添加相关详细信息,以便使答案易于快速阅读...... (2认同)