我最近在我们的主要回购中设置了Git LFS,到目前为止它没有任何问题。最重要的是,我们只是将其设置为停止对我们单独的构建仓库的膨胀影响(这将有利于新流程)。
此时(以及其他问题)的主要问题是我们正在尝试将构建从主要仓库推送到Acquia仓库(这是Acquia部署所必需的)。 Acquia不支持Git LFS,我没有时间与他们争论,也没有与任何可能影响这种变化的人争论主机解决方案的优点(这是我们已经拥有并且已经有一段时间了)。 / p>
我想删除它,似乎我只是部分删除了它。似乎这方面的在线文档充其量只是很少。
这就是我所做的:
git lfs untrack *
git lfs uninstall
.gitattributes
文件还原到了之前的状态我把它推到了本地,似乎已经消除了很多对象跟踪(因为我进入.git/lfs
并通过文件夹结构生根)。正在运行git lfs ls-files
并没有向我显示任何内容。
然而,当我把它放在一个单独的克隆上时,它会显示当我尝试推送到Acquia时它仍然跟踪的一千多个文件,但由于Acquia不支持它而失败。迷人,我知道。
我怀疑完全删除它会消除.git/lfs
目录或至少它的内容。如果没有别的,它应该消除克隆中的跟踪,拉下变化。它没有。
我认为我可能错过了将文件指针更改回原来的步骤,但我不确定我还能安全地做些什么。我想保留它跟踪的文件。我的回购托管在Bitbucket云上。
答案 0 :(得分:0)
来自GitHub,并且按照您所采取的步骤进行操作
https://github.com/git-lfs/git-lfs/issues/3026
git lfs uninstall
这消除了钩子和污迹/清洁过滤器的配置 这仅仅是个开始,呵呵呵
我们如何重新索引/重新提交lfs文件以恢复它们?
您可能可以从.gitattributes中删除条目,并触发每个lfs文件都不相同的git索引,然后添加并提交这些文件。这与在git repo中更改自动换行符的过程相同。我将对此进行一些测试,但这可能会为您提供正确的方向。唯一的解决方法是您不想首先重置.gitattributes文件。 我刚刚读到的一件好事,这必须在.gitattributes步骤之前完成
但是我们该怎么做呢? (确保不想不小心更改我所有的换行符,哈哈)
好的,这个问题中有一些关于方法论的话题
git lfs ls-files — view lfs files
对于每个文件,请尽可能使用globs:
git rm --cached myfile.psd — "remove" the lfs file
git add myfile.psd — add the "normal" file
git commit -m "restore files from lfs"
让我知道是否合理
remove lfs .gitattribute entries
这显然将阻止lfs复活
我们如何删除通过git lfs ls-files看到的剩余文件???
我猜我们一次git lfs untrack
一次
不,取消跟踪不会删除它们……嗯……这是怎么做的?
也许一旦我确定了步骤2,便会完成
是的,第2步将其删除
我们要告诉我们的其他贡献者做什么???
我猜他们只需要git lfs uninstall
?
他们还需要git lfs untrack
存储的文件还是类似的文件?
此外,我对在这里重写git历史没有兴趣,这很愚蠢...我只想与我的合作伙伴一道前进