如何在存储库

时间:2017-12-11 23:40:53

标签: git bitbucket git-lfs acquia

我最近在我们的主要回购中设置了Git LFS,到目前为止它没有任何问题。最重要的是,我们只是将其设置为停止对我们单独的构建仓库的膨胀影响(这将有利于新流程)。

此时(以及其他问题)的主要问题是我们正在尝试将构建从主要仓库推送到Acquia仓库(这是Acquia部署所必需的)。 Acquia不支持Git LFS,我没有时间与他们争论,也没有与任何可能影响这种变化的人争论主机解决方案的优点(这是我们已经拥有并且已经有一段时间了)。 / p>

我想删除它,似乎我只是部分删除了它。似乎这方面的在线文档充其量只是很少。

这就是我所做的:

  1. 运行git lfs untrack *
  2. 然后git lfs uninstall
  3. 最后,我将.gitattributes文件还原到了之前的状态
  4. 我把它推到了本地,似乎已经消除了很多对象跟踪(因为我进入.git/lfs并通过文件夹结构生根)。正在运行git lfs ls-files并没有向我显示任何内容。

    然而,当我把它放在一个单独的克隆上时,它会显示当我尝试推送到Acquia时它仍然跟踪的一千多个文件,但由于Acquia不支持它而失败。迷人,我知道。

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

    我认为我可能错过了将文件指针更改回原来的步骤,但我不确定我还能安全地做些什么。我想保留它跟踪的文件。我的回购托管在Bitbucket云上。

1 个答案:

答案 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历史没有兴趣,这很愚蠢...我只想与我的合作伙伴一道前进