Git Bundle с LFS

Мне нужно связать репозиторий git, на котором мы использовали git-lfs, но столкнулись с проблемой.

Это будет хорошо, но когда я клонирую его, эта ошибка происходит

Загрузка.../Dll's/DotNetZip.dll (458 КБ) Ошибка при загрузке объекта: .../Dll's/DotNetZip.dll (7dd20a2): Ошибка смазывания: Ошибка при загрузке.../Dll's/DotNetZip.dll (7dd20a2291b05323bba04be4ae656d7635ae5e68a5a631e46b646468188f868468188644618188646188641886418188641886418188641886418864188641818868818469188869188649188641818864818864818864818468188648188688188648188649188649188648188648188649188649 запрос: отсутствует протокол: "C:/...bundleName.bundle.git/info/lfs"

Ошибки записываются в C:/.../. Git\lfs\logs\20180831T093319.3979074.log Использование git lfs logs last просмотреть журнал. ошибка: внешний фильтр 'git-lfs filter-process' потерпел неудачу фатально: ../Dll's/DotNetZip.dll: smudge filter lfs Ошибка предупреждение: клонирование выполнено успешно, но проверка не выполнена. Вы можете проверить, что было извлечено с помощью "git status", и повторить попытку с "git checkout -f HEAD".

Я не могу найти документацию о том, как lfs должен работать с git bundle. Все, что мне действительно нужно для моего файла lfs, - это хранить последнюю версию в комплекте, но, похоже, не могу найти, где это может быть.

2 ответа

Полагаю git bundleне поддерживается . Однако с последними версиями git-lfsвы можете использовать локальные репозитории git «голого» типа вместо веб-менеджера репозиториев, такого как GitHub или GitLab.

Чтобы создать «комплект» репозитория git, включая его данные lfs из GitHub, с использованием локального репозитория:

Сначала клонируйте репозиторий с GitHub и скачайте все:

      git clone https://github.com/some-user/lfs-repo
cd lfs-repo
git fetch --all
git fetch --tags
git lfs install
git lfs fetch --all

Затем создайте новое голое репо:

      cd ..
mkdir bare-repo
cd bare-repo
git init --bare

Затем добавьте новое голое репо в качестве удаленного к вашему клонированному репо и отправьте в него все:

      cd ../lfs-repo
git remote add bare file://$(pwd)/../bare-repo
git push --all bare
git push --tags bare
git lfs push --all bare

Теперь у вас есть все данные (включая данные lfs) в вашем bare-repo. Вы можете заархивировать его сейчас:

      cd ..
tar -czvf bundle.tar.gz bare-repo

Если вы хотите получить данные из «связки», просто скопируйте файл на нужный хост, извлеките его и клонируйте с него с помощью file://URL.

Ссылки: ссылка1 , ссылка2

Получил ту же ошибку в Ubuntu-20.04.1-LTS, которая все еще поставляется со старой версией git-lfs 2.9.

Ошибка упоминается на github.com/git-lfs , а исправление находится в git-lfs 2.10 или новее (на данный момент последняя версия — 2.13.2), и для ее установки необходимо выполнить следующие шаги (см. также вики):

      sudo apt install curl
curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
sudo apt-get install git-lfs
git lfs install
git clone git@bitbucket.org:project/repo.git --recursive
cd repo/
git lfs install
git checkout some_branch

После этого ошибка исчезла.

Другие вопросы по тегам