GIT LFS "не удалось набрать sh некоторые ссылки на" - PullRequest
0 голосов
/ 15 апреля 2020

У меня есть текущий GIT репозиторий, размещенный через TFS. Мы планируем перейти на LFS для управления некоторыми большими двоичными файлами, которые хранятся через систему контроля версий. Я клонирую репозиторий TFS в свой локальный P C, а затем клонирую клон, чтобы я мог смоделировать / протестировать внесение этих изменений вместо того, чтобы pu sh моя LFS перешла в TFS, пока члены команды работают.

TFS-> Локальный клон-> Локальный рабочий клон

Я выполняю следующие шаги / GIT команды:

  1. Клонирование из TFS. создает пустое локальное репо:

    git clone --mirror TFS-URL LocalClone
    
  2. Клонировать в рабочее репо:

    git clone d:/LocalClone CloneWorking
    
  3. переключиться на мое репозиторий CloneWorking:

    cd d:/CloneWorking 
    
  4. Установить LFS:

    git lfs install
    
  5. запустить BFG и удалить старый двоичный файл:

    java -jar D:\bfg\bfg.jar --convert-to-git-lfs <some Zip File> D:\CloneWorking\.git
    
  6. Очистка GIT мусор:

    git reflog expire --expire=now --all && git gc --prune=now --aggressive
    
  7. Создайте тестовый файл и убедитесь, что отправка в Origin все еще успешна:

    get add .
    git commit -m "sanity check"
    git push origin master --force
    --Success--
    
  8. Начать отслеживание расширений двоичных файлов через LFS:

    git lfs track "*.zip"
    
  9. На данный момент существует несколько файлов .zip, которые могут быть изменены:

    git status
    new file:   .gitattributes
    modified:   <Some Path>/A.zip
    modified:   <Some Path>/B.zip
    
  10. Я делаю add / commit и пытаюсь сделать pu sh to origin:

    get add .
    git commit -m "This is going to fail"
    git push origin master --force
    Uploading LFS objects: 100% (9/9), 42 MB | 0 B/s, done. EOF error:
    failed to push some refs to 'd:/LocalClone'
    

Так вот где я застрял. Если я не могу отправить sh в репозиторий восходящего потока на моей локальной машине, я почти уверен, что произойдет сбой, когда я попытаюсь сделать эти изменения в удаленном репо на TFS-сервере.

1 Ответ

0 голосов
/ 16 апреля 2020

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

Боюсь, что вы должны отправить его sh на удаленный репо, а не в локальное репо.

https://tfsseverurl.com/Collection/Project/_git/Reponame

Кроме того, вам нужно использовать версию TFS как минимум 2017.2 или выше по этой ссылке - Поддержка LFS в TFS на предпосылке

...