Теперь, не вдаваясь в подробности о том, почему вы хотите это сделать, ваша проблема (вероятно) может быть легко решена с помощью символической ссылки / ярлыка.
Чтобы ответить на вопрос - нет, и с веской причиной,Вся история репо загружается даже с «редкой проверкой».Чтобы выяснить, почему это необходимо - в противном случае отслеживание переименованных файлов будет болью в ... шее.Представьте, что вы переместили файл /repo_root/asd/file1.cpp
в /repo_root/fgh/file1.cpp
- теперь, если вы скачали только /repo_root/fgh
дельт, вы не будете знать о file1.cpp.Так что это означает, что вы должны загрузить все дельты.Но тогда у вас есть полный репозиторий;это не просто папка, поэтому папка /rero_root/fgh
сама по себе не является репо.Это может показаться неважным, когда вы извлекаете деньги, но при фиксации git может не знать достаточно, чтобы работать нормально.
Обходной путь : Если вы действительно хотите, вы можете создать скрипт, который вызываетgit-checkout таким образом (для оболочки sh не должно быть сложно создать пакет для windows):
!/bin/sh
curDir=`pwd`
cd $2
git-checkout $1
cp -R $3/* $4
cd $curDir
Здесь первый аргумент - это ветвь для извлечения, второй - папка, в которой находитсярепо в настоящее время присутствует, третий - подкаталог, который вы действительно хотите использовать, и четвертый - место, куда вы хотите его скопировать.
Предупреждение: мои навыки работы с оболочкой практически отсутствуют, поэтому используйте его послетестирование.Не должно быть сложно воссоздать обратную сторону этого сценария, который копирует обратно материал, чтобы его можно было зафиксировать в репо.