是什么原因导致我在git配置文件中为我添加的每个LFS文件输入一个条目?

Wil*_*ins 6 git bitbucket git-lfs

我最近将许多(新)文件添加到了git存储库中,并使用Gi​​t LFS对其进行了跟踪。我的遥控器是BitBucket,它可以按预期正常运行。

除此之外,对于我添加到LFS的每个文件,都会向我添加一个条目.git/config,如下所示:

[lfs "https://bitbucket.org/%7B%7D/%7B********-****-****-****-****6bcd1adc%7D/info/lfs/object/verify?upload_id=********-d87a-47f9-a857-ae04********"]
    access = basic
Run Code Online (Sandbox Code Playgroud)

*出于安全原因,所有都是十六进制字符,我删除了)

因为我为使用LFS跟踪和推送的每个文件添加了一个条目,并且我在LFS中有数百个文件,所以我的git config文件现在很大。

我认为这个问题是在将origin遥控器(从一个BitBucket存储库切换到另一个)后开始的。

发生了什么,更重要的是,我该如何解决?

我可以安全地从中删除这些条目.git/config吗?


作为参考,这是在相同的配置文件中配置BitBucket遥控器的方式:

[remote "origin"]
    url = https://user@bitbucket.org/user/repository.git
    fetch = +refs/heads/*:refs/remotes/origin/*
[lfs "https://user@bitbucket.org/user/repository.git/info/lfs"]
    locksverify = false
    access = basic
[lfs "https://bitbucket.org/user/repository.git/info/lfs"]
    access = basic
Run Code Online (Sandbox Code Playgroud)

这就是仓库.gitattributes根目录中的LFS部分:

...
database/seeds/sql/content/*/allcontent.sql filter=lfs diff=lfs merge=lfs -text
public/img/*/path1/*.normal@2x.jpg filter=lfs diff=lfs merge=lfs -text
public/img/*/path2/*.normal@2x.jpg filter=lfs diff=lfs merge=lfs -text
Run Code Online (Sandbox Code Playgroud)

更新 ; 我跑了git lfs uninstall,然后git lfs install --local在存储库中查看它是否可以解决任何问题,但不能解决问题(也就是说,对于我添加到LFS的新文件,更多行仍被添加到.git / config中)。我的.git/config文件现在超过110KB大:S

更新2:我与BitBucket保持联系,到目前为止,我得到的唯一答复是这是预期的行为,并且与修剪本地LFS文件有关,因此我认为他们不理解我提交的问题。我怀疑您可以通过从BitBucket上删除远程存储库以及从工作目录中删除所有使用LFS跟踪的文件,卸载Git LFS,从Git存储库中删除LFS目录,删除所有.gitattributes引用LFS的行,进行新的修复此残酷方法。使用BFG或类似方法在本地提交,以从所有历史提交中删除对所有LFS跟踪文件的引用(取决于您的操作方式,这可能会使所有历史提交中的跟踪文件丢失-我遵循了此操作文章),然后重新安装Git LFS并重新跟踪并添加文件,然后再推送到在BitBucket上新创建的存储库中。我只是这样做,但是没有重新安装Git LFS的最后一步-现在,我将坚持以常规方式跟踪这些文件。如果绝对需要使用LFS,我怀疑这些步骤可以解决它(代价是可能会丢失历史提交完整性),但是我不确定。如果我从BitBucket收到其他答复,则一定会更新此问题。

更新3:BitBucket现在了解此问题并正在调查。