Что вызывает запись в моем файле конфигурации git для каждого файла LFS, который я добавляю? - PullRequest
6 голосов
/ 15 марта 2019

Недавно я добавил много (новых) файлов в свой репозиторий git и отслеживаю их с помощью Git 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

(Все * - это шестнадцатеричные символы, которые я удалил по соображениям безопасности)

Поскольку для каждого файла, который я отслеживаю и отправляю с помощью LFS, добавляется одна запись, а в LFS сотни файлов, мой файл конфигурации git теперь огромен.

Я думаю, что эта проблема началась после переключения моего 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

И вот как выглядит часть LFS .gitattributes в корне репо:

...
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

Обновление ;Я запустил git lfs uninstall, а затем git lfs install --local в репозитории, чтобы увидеть, исправляет ли он что-то, но не делает (то есть, все еще добавляются строки в .git / config для новых файлов, которые я добавил в LFS).Размер моего .git/config файла превышает 110 КБ: S

Обновление 2 : я связывался с BitBucket, единственный ответ, который я получил, заключается в том, что это ожидаемое поведение и что-тообрезка локальных файлов LFS, поэтому я думаю, что они не понимают проблему, которую я представил.Я подозреваю, вы можете исправить это жестоким способом, удалив удаленный репозиторий в BitBucket и все файлы, отслеживаемые с помощью LFS, из вашего рабочего каталога, удалив Git LFS, удалив каталог LFS из вашего репозитория Git, удалив все .gitattributes строки, ссылающиеся на LFS, выполняющие новую фиксацию локально, используя BFG или что-то подобное, чтобы удалить ссылки на все файлы, отслеживаемые LFS, из всех исторических фиксаций (в зависимости от того, как вы это сделаете, отслеживаемые файлы могут пропадать из всехисторические коммиты - я следовал этой статье), затем переустанавливал Git LFS и повторно отслеживал и добавлял файлы перед отправкой в ​​репозиторий, вновь созданный в BitBucket.Я сделал это, но без последнего шага переустановки Git LFS - сейчас я просто буду отслеживать эти файлы обычным способом.Если использование LFS абсолютно необходимо, я подозреваю, что эти шаги исправят это (ценой возможной потери исторической целостности фиксации), но я тоже не уверен.Если я получу другой ответ от BitBucket, я обязательно обновлю эту проблему.

Обновление 3 : BitBucket теперь понимает проблему и изучает ее.

...