GIT извлекает только файлы проекта, не извлекая модуль LFS.

У меня есть проект bitbucket, в котором также есть встроенный модуль LFS. Я подтвердил, что файлы, которые должны быть в модуле LFS, присутствуют в самом модуле LFS, а не в основном проекте.

Но когда я клонирую проект, происходит следующее:

Cloning into 'testing'...
remote: Counting objects: 310, done.
remote: Compressing objects: 100% (164/164), done.
remote: Total 310 (delta 124), reused 219 (delta 104)
Receiving objects: 100% (310/310), 25.57 MiB | 846.00 KiB/s, done.
Resolving deltas: 100% (124/124), done.
Checking connectivity... done.
Downloading xxx1.file (60.16 MB)
Downloading xxx2.file (61.16 MB)
Downloading xxx3.file (62.16 MB)
Downloading xxx4.file (63.16 MB)

Файлы LFS также загружаются вместе при использовании команды «git clone». Если я попытаюсь резко остановить загрузку, то большинство файлов в репозитории git будут удалены локально и отобразятся в «git status»:

Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

    deleted:    .gitattributes
    deleted:    .gitignore

Как избежать «git lfs pull» при использовании команды «git clone»?

GIT LFS ENV:

git-lfs/2.1.0 (GitHub; linux amd64; go 1.8; git bd2c9987)
git version 1.9.1

Endpoint=REMOTE/info/lfs (auth=basic)
LocalWorkingDir=LOCAL
LocalGitDir=LOCAL/.git
LocalGitStorageDir=LOCAL/.git
LocalMediaDir=LOCAL/.git/lfs/objects
LocalReferenceDir=
TempDir=LOCAL/.git/lfs/tmp
ConcurrentTransfers=3
TusTransfers=false
BasicTransfersOnly=false
SkipDownloadErrors=false
FetchRecentAlways=false
FetchRecentRefsDays=7
FetchRecentCommitsDays=0
FetchRecentRefsIncludeRemotes=true
PruneOffsetDays=3
PruneVerifyRemoteAlways=false
PruneRemoteName=origin
AccessDownload=basic
AccessUpload=basic
DownloadTransfers=basic
UploadTransfers=basic
git config filter.lfs.process = "git-lfs filter-process"
git config filter.lfs.smudge = "git-lfs smudge -- %f"
git config filter.lfs.clean = "git-lfs clean -- %f"

person Anoop K. Prabhu    schedule 09.05.2017    source источник
comment
Но не это ли именно то, что должно произойти? Либо git clone, либо git lfs clone - по-любому кажется, что файлы скачиваются изначально, просто второй командой быстрее. . atlassian.com/git/tutorials/git-lfs#clone-respository Или, может быть, действительно нужно что-то вроде github.com/Microsoft/GVFS   -  person cantSleepNow    schedule 09.05.2017
comment
Это именно то, что должно произойти для некоторых пользователей. Для других должно быть иначе. В противном случае я мог бы избежать LFS и отправить все напрямую в репо. Также я чувствую, что должно быть что-то, что можно было бы сделать, чтобы это «git lfs pull» не происходило автоматически.   -  person Anoop K. Prabhu    schedule 09.05.2017
comment
Я не имел в виду should happen в контексте некоторых пользователей или других, скорее это то, как работает команда. Во всяком случае, я вижу вашу точку зрения. ЕСЛИ GVFS не вариант, то, возможно, попробуйте разреженную проверку. Создайте пустую папку, добавьте удаленный и выполните разреженную проверку. На самом деле вот один хороший ответ на этот заголовок unix.stackexchange.com/questions/233327/   -  person cantSleepNow    schedule 09.05.2017
comment
установка разных путей для всех файлов, присутствующих в lfs, будет кропотливой. Меня больше интересует изменение чего-то в конфиге git, что останавливает автоматическую загрузку файлов lfs. Спасибо за предложения! Буду рассматривать их как второстепенный вариант.   -  person Anoop K. Prabhu    schedule 09.05.2017


Ответы (1)


Возможно, это тот ответ, который вам нужен (надеюсь, ответ еще не опоздал :)): git lfs install --skip-smudge

--skip-smudge: Пропускает автоматическую загрузку объектов при клонировании или извлечении. Это требует ручного «git lfs pull» каждый раз, когда новый коммит проверяется в вашем репозитории.

подробнее

person Rui Zhang    schedule 14.08.2019