Подтвердить что ты не робот

В Windows git: "ошибка: разреженный контроль не оставляет записи в рабочем каталоге"

У меня была ошибка:

"error: Sparse checkout leaves no entry on the working directory"

при попытке настроить редкую проверку в git на окнах. Я ответил на свой вопрос после изучения проблемы и поиска полного ответа в Интернете.

4b9b3361

Ответ 1

TL;DR

Из папки, в которой вы хотите, чтобы источник работал, с помощью приглашения git - bash NOT powershell (хотя см. мое редактирование ниже):

git clone –n <repo> <local-directory-name>
cd <local-directory-name>
git config core.sparsecheckout true
echo some/sub-folder/you/want >> .git/info/sparse-checkout
git checkout <branch-name>

Полное объяснение

Редкие проверки позволяют работать с подмножеством репозитория. Его стоит стараться настроить редкие проверки в больших хранилищах, все гораздо быстрее!

Я изо всех сил пытался настроить его на окна, получив много "ошибок: разреженный контроль не оставляет записи в рабочем каталоге". После небольшого исследования я обнаружил, что следующие шаги были минимальными и имели для меня хорошие результаты - YMMV.

Самый важный момент - НЕ ИСПОЛЬЗУЙТЕ POWERSHELL/CMD ДЛЯ ЭТИ ШАГИ - используйте приглашение git bash. Это связано с тем, что в противном случае команда echo создает файл UNICODE с маркером спецификации. Файл ДОЛЖЕН быть файлом формата ANSI с окончанием строки стиля UNIX для git для правильного его анализа. Это наиболее вероятная причина ошибки "error: Sparse checkout не содержит записей в рабочем каталоге".

  • От родителя каталога, который вы хотите быть корневой папкой, при условии, что имя папки "src" выполняет следующие действия: Это захватывает все репо (которое по-прежнему требуется), но, что важно, не выполняет а также правильно настроит пульт дистанционного управления и отслеживание ветвей.

    git clone –n <your repository> src
    
  • У вас должна быть довольно пустая папка src (у нее будет скрытая папка .git). Теперь выполните следующее. Это обновляет локальную конфигурацию git, чтобы включить разреженные проверки, и создает файл в скрытой папке .git/info, в которой будут перечислены все папки, которые вы хотите включить, при выполнении разреженной проверки. Это можно отредактировать позже, чтобы добавить другие папки. Важно. Обязательно используйте приглашение git bash для нижеописанного и используйте редактор, поддерживающий соглашения об окончании линии unix и сохраняйте как ANSI при редактировании файла разреженной проверки, или можете get "ошибка: ошибка с ошибкой не содержит записей в рабочем каталоге". <path you want to checkout> может выглядеть следующим образом: path/to/subfolder - отметить отсутствие разделителей ведущих и конечных путей.

    cd src
    git config core.sparsecheckout true
    echo <path you want to checkout> >> .git/info/sparse-checkout
    
  • Теперь вы готовы к оформлению заказа. Это должно привести к тому, что будут заполнены только разреженные папки. Если это не так, внимательно проверьте правописание всего выше!

    git checkout <branch-name>
    

Изменить - Эхо в Powershell

Недавно я обнаружил, что эхо в powershell является синомой для записи-вывода. Можно получить вывод ASCII путем соединения эха с командой out-file, которая позволяет вам указать кодировку. Таким образом, это будет работать с Powershell и предоставить правильное содержимое файла:

echo some/sub/folder/you/want | out-file -encoding ascii .git/info/sparse-checkout