blogggg
Alexander Groshev github email rss
Опубликовано: 2016-02-16

Скачивание определенной директории из git-репозитория

Нашёл решение для скачивания определенной директории из git-репозитория. Это перевод ответа на StackOverflow, который в свою очередь является хорошим примером к документации по Sparse Checkout в Git.

Начиная с версии 1.7.0 в Git появилась возможность указания какие пути в локальной копии репозитория должны синхронизироваться - sparse checkout. Для скачивания отдельной директории из удаленного репозитория необходимо проделать следующие шаги:

mkdir <reponame>
cd <reponame>
git init
git remote add -f origin <repoURL>

Создается пустой репозиторий и в него скачиваются все объекты из удаленного репозитория, но не применяются.

git config core.sparseCheckout true

Включается sparse checkout. B далее надо в файле .git/info/sparse-checkout определить все пути, которые необходимо синхронизировать:

echo "directory/one/" >> .git/info/sparse-checkout
echo "directory/two/" >> .git/info/sparse-checkout

И выполнить синхронизацию с удаленным репозиторием:

git pull origin master

Более подробно описано здесь