Когда вы клонируете репозиторий Git, создается локальная копия всего репозитория, включая каталог.git, который содержит историю и метаданные репозитория. Однако могут возникнуть ситуации, когда вы захотите клонировать репозиторий, не включая каталог.git. Вот несколько способов добиться этого:
-
Поверхностное клонирование.
Вы можете использовать параметр--lengthс командойgit cloneдля выполнения поверхностного клонирования. Неглубокий клон извлекает только самую последнюю историю коммитов, исключая старые коммиты и ветки. Это может значительно уменьшить размер клона. Например:git clone --depth 1 <repository_url> -
Клонирование и удаление.
Другой способ — выполнить обычное клонирование и затем вручную удалить каталог.git. После клонирования репозитория вы можете удалить каталог.git с помощью следующих команд:git clone <repository_url> rm -rf <cloned_directory>/.git -
Подкаталог экспорта:
Если вам нужен только определенный подкаталог репозитория без какой-либо истории контроля версий, вы можете использовать параметр--lengthвместе сgit archiveдля экспорта этого конкретного подкаталога в виде архива tar или zip. Например:git archive --format=tar --remote=<repository_url> --prefix=<subdirectory>/ HEAD | (cd <destination_directory> && tar xf -) -
Разреженная проверка.
Функция разреженной проверки Git позволяет вам указать список файлов или каталогов для включения в клон, исключая другие. Это можно сделать, установив файлsparse-checkoutв каталоге.git/info. Вот пример:git init <cloned_directory> cd <cloned_directory> git remote add origin <repository_url> echo "<subdirectory>/*" >> .git/info/sparse-checkout git pull origin master