2019-06-01 21:08:41 +00:00
|
|
|
|
= Git: частичная копия репозитория
|
2019-06-02 23:26:28 +00:00
|
|
|
|
:title-separator: {sp}|
|
2019-06-01 21:08:41 +00:00
|
|
|
|
:category: Программирование
|
|
|
|
|
:tags: программирование, git,
|
|
|
|
|
|
|
|
|
|
Если проект очень большой, а следить нужно только за малой его частью,
|
|
|
|
|
можно создать частичную копию репозитория. Допустим, по адресу
|
|
|
|
|
`git://localhost/project.git` находится большой проект, в котором
|
|
|
|
|
интересует только последнее состояние каталогов `src/driver` и
|
|
|
|
|
`include/driver`. Сначала нужно создать пустой репозиторий и подготовить
|
|
|
|
|
его для получения только необходимых файлов:
|
|
|
|
|
|
|
|
|
|
[source,sh]
|
|
|
|
|
----
|
|
|
|
|
git init project
|
|
|
|
|
cd project
|
|
|
|
|
git remote add origin git://localhost/project.git
|
|
|
|
|
git config core.sparsecheckout true
|
|
|
|
|
echo "src/driver/*" >> .git/info/sparse-checkout
|
|
|
|
|
echo "include/driver/*" >> .git/info/sparse-checkout
|
|
|
|
|
----
|
|
|
|
|
|
|
|
|
|
После этого можно получать частичную копию проекта, а, добавив ключ
|
|
|
|
|
`--depth=1`, указать, что синхронизироваться должно только текущее
|
|
|
|
|
состояние файлов без учёта истории.
|
|
|
|
|
|
|
|
|
|
[source,sh]
|
|
|
|
|
----
|
|
|
|
|
git pull --depth=1 origin master
|
|
|
|
|
----
|