Скачивание определенной директории из 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  

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

comments powered by Disqus