Git LFS отказывался отслеживать мои большие файлы должным образом, пока я не сделал следующее


Задача

У меня были проблемы с использованием git LFS, несмотря на множество предложений здесь по SO, по документации Git и GitHub, а также по некоторым Gists, с которыми я столкнулся.

Моя проблема заключалась в следующем:

После выполнения необходимых действий:

git lfs install
git lfs track "<file of interest>"
git commit

У меня все равно не было бы отслеживаемых файлов. Если бы я выполнил

git lfs ls-files

Она будет пустой. Если бы я пошел вперед и выполнил толчок, транзакция потерпела бы неудачу, сказав, что файлы слишком велики. (Как и ожидалось, но я был в отчаянии.)

2 8

2 ответа:

Мой (Оригинальный Плакат) "Решение"

Затем я обнаружил несколько исправлений, некоторые из которых, похоже, были ошибками, некоторые из которых просто не были очевидны для меня.
  1. Похоже, что для использования lfs ссуществующим репозиторием , необходим Хак или сторонний инструмент, такой какконвертер BFG .

    • я не хотел идти этим путем, поэтому я просто инициализировал новый репозиторий локально, а затем сделал вызов подключения его обратно к настоящему РЕПО.
    • я создал новый каталог, затем git init и т. д.
        В моем случае удаленным хранилищем был GitHub. Поэтому я делал все эти правильные перепихоны, такие как git remote add origin git@github.com:<my_id>/<my_repo>.git
  2. Также, хотя обучающее видео Git утверждает, что вы можете просто указать папку, такую как "my_folder/", я не смог заставить это работать. Поэтому я просто ловко использовал Расширения имен файлов для управления вещами.

    • например, git lfs track "my_folder/" не будет работать для меня, но git lfs track "*.zip" работал.
  3. Мне не удалось правильно идентифицировать файлы LFS, если я не обновил файл сначала, а затем зафиксировал и отправил этот новый файл на удаленный сервер .

    • git lfs track "*.zip"
    • git add .gitattributes
    • git commit -m "Updated the attributes"
    • git push
    • git add my_large_file.zip
    • git lfs ls-files
      • и здесь я бы гарантировал, что видел my_large_file.zip бытие гусеничный.
    • git commit -m "Now I am adding the large file"
    • git push

Возможно, что некоторые вещи работают, и я просто делал их неправильно. Однако, следуя описанному выше колдовству, наконец-то заработал LFS, поэтому я подумал, что передам эти детали другим, на случай, если у кого-то еще будет такая же проблема.

Чтобы отслеживать все файлы и подкаталоги my_folder через LFS, вы можете сделать:

git lfs track "my_folder/**"

Это сработало для меня.

Выполнение следующих действий не работает на данный момент для отслеживания всего каталога my_folder:

git lfs track "my_folder/" 

Не работает