Переместить каталог git из одного репозитория с поддержкой LFS в другой (также LFS)

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

Я пробовал это как непосредственно между моими локальными клонами, так и выполняя ветку фильтра на ветке и отправляя ее на главный сервер (VSTS). В обоих случаях фильтр пятен дал сбой, заявив, что не может найти файл, отслеживаемый LFS; с удаленным VSTS регистрируется ошибка 404.

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


person Community    schedule 18.03.2018    source источник
comment
Извиняюсь за название; Я заменил условия поиска на Переместить каталог git из одного репозитория с поддержкой LFS в другой (также LFS), но, похоже, браузер на этом устройстве отменил изменение, и теперь я не могу его отредактировать...   -  person    schedule 18.03.2018


Ответы (2)


В соответствии с Файлы lfs из-за истечения времени ожидания клонирования репозитория не могут быть получены #1181

В обоих случаях фильтр пятен дал сбой, заявив, что не может найти файл, отслеживаемый LFS; с удаленным VSTS регистрируется ошибка 404.

Это означает, что файлы не существуют на сервере. Вы можете попытаться найти локальный клон этого репозитория, в котором он есть, и запустить git lfs push REMOTE_NAME --all.

И вам может потребоваться выполнить git lfs fetch --all, чтобы загрузить все файлы, отслеживаемые LFS, прежде чем отправлять их в новый репозиторий Git.

person S.Y. Wang    schedule 19.03.2018
comment
Ключ здесь был git lfs fetch --all. - person ; 19.03.2018
comment
Это то, что тебе надо? - person S.Y. Wang; 19.03.2018
comment
Подробнее в отдельном ответе. - person ; 19.03.2018

(Проголосовал за другой ответ за подсказку в правильном направлении, хотя мой представитель-новичок не покажет его.)

Похоже, что ключ здесь был git lfs fetch --all, прежде чем разветвляться и запускать filter-branch, перемещать и фиксировать, как описано в статье. Похоже, что LFS не предназначена для работы между локальными клонами; изменение процедуры в обратном порядке для push целевого клона также привело к ошибке, но это сработало при отправке на удаленный сервер для целевого репозитория.

Оттуда выборка в целевой клон и слияние с --allow-unrelated-histories, похоже, дали нам то, что мы искали.

person Community    schedule 19.03.2018