перенести импорт git lfs -неизвестный флаг без перезаписи — не перезаписывать

#git #git-lfs #git-lfs-migrate

#git #git-lfs #git-lfs-перенос

Вопрос:

Я пытаюсь исправить проблему с отсутствующими указателями, используя git lfs migrate import --no-rewrite сначала я перечисляю все файлы, в которых отсутствовали указатели, используя git reset --hard :

 new Promise((resolve, reject) => {
    exec("git reset --hard", (error, stdout, stderr) => {
        if (error) {
            console.error(`exec error: ${error}`);

            reject(error);
            return;
        }

        const filesWithMissingPointers = Array.from(
            stderr.matchAll(/t(.*)/g)
        ).map((m) => m[1]);

        resolve(filesWithMissingPointers);
    });
});
  

Затем я регистрирую вывод:

 console.log(
    `Problem files before lfs migrating: tn${problemFilesBefore.join("tn")}`
);
  

Вывод:

 Problem files before lfs migrating:     
IdleGame/Assets/Plugins/Fonts/Localization/Korean/NotoSansCJKkr-Medium.otf  
IdleGame/Assets/Plugins/Fonts/Localization/Latin_Cyrillic_Greek/OctoberPro-Black.otf    
IdleGame/Assets/Plugins/Fonts/Localization/Latin_Cyrillic_Greek/OctoberPro-HeavyItalic.otf  
IdleGame/Assets/Plugins/Fonts/Localization/Persian/NotoNaskhArabicUI-Bold.ttf   
IdleGame/Assets/Plugins/Fonts/Localization/Thai/NotoSansThaiUI-CondensedMedium.ttf  
IdleGame/Assets/Plugins/Fonts/Oswald-Bold.ttf   
IdleGame/Assets/Plugins/Fonts/PoetsenOneRegular/TrueType font file/PoetsenOne-Regular 1.ttf 
IdleGame/Assets/Plugins/Fonts/Roboto Medium/TrueType font file/roboto-medium.ttf    
IdleGame/Assets/Plugins/Fonts/nevis.ttf 
IdleGame/Assets/Plugins/LibrariesDesign/BeautifulDissolves/_Examples/_Assets/Textures/ZomBearSpecular.tif   
IdleGame/Assets/Plugins/LibrariesDesign/BeautifulDissolves/_Examples/_Assets/Textures/ZomBunnySpecular.tif
  

Затем я пытаюсь запустить:

 execSync(
  `git lfs migrate import --no-rewrite  -m "AutoCommit Bot: fix missing LFS points ${process.env.CI_PIPELINE_URL}" ${problemFilesBefore.join(" ")} --yes`
);
  

И я сталкиваюсь:

 Error: unknown flag: --no-rewrite
  

Я сталкиваюсь с той же проблемой локально при запуске команды в powershell, но я не сталкиваюсь с ней при запуске в bash. Мои скрипты выполняются в контейнере docker (Linux) с установленным git lfs. Поскольку это Unix, он должен использовать bash в качестве командной строки по умолчанию, поэтому я не думаю, что проблема заключается в оболочке.

Примечание: я запускаю этот скрипт как задание в gitlab

Комментарии:

1. Что git lfs version дает?

2. @bk2204 git-lfs/2.3.4 (GitHub; linux amd64; go 1.8.3)

Ответ №1:

--no-rewrite Флаг недоступен в Git LFS 2.3.4. Git LFS имеет довольно агрессивный процесс выпуска, и поэтому между версиями добавляется множество новых функций, которые обычно выходят каждые 3 месяца.

Если вы используете Ubuntu 18.04, вы, вероятно, захотите обновиться до 20.04 или, по крайней мере, использовать более новую версию. Проект Git LFS предоставляет дополнительные двоичные файлы и пакеты, которые вы можете использовать, если вам неудобно обновлять свою ОС.

Если вы используете Windows для определенных целей, вам следует просто обновить свою версию Git для Windows. Git LFS поставляется с Git для Windows, и самый простой способ получить более новую версию — обновить Git. Установить более новую версию вручную сложно, потому что сложно переопределить встроенную версию.