Методы клонирования репозитория Git без включения каталога .git

Когда вы клонируете репозиторий Git, создается локальная копия всего репозитория, включая каталог.git, который содержит историю и метаданные репозитория. Однако могут возникнуть ситуации, когда вы захотите клонировать репозиторий, не включая каталог.git. Вот несколько способов добиться этого:

  1. Поверхностное клонирование.
    Вы можете использовать параметр --lengthс командой git cloneдля выполнения поверхностного клонирования. Неглубокий клон извлекает только самую последнюю историю коммитов, исключая старые коммиты и ветки. Это может значительно уменьшить размер клона. Например:

    git clone --depth 1 <repository_url>
  2. Клонирование и удаление.
    Другой способ — выполнить обычное клонирование и затем вручную удалить каталог.git. После клонирования репозитория вы можете удалить каталог.git с помощью следующих команд:

    git clone <repository_url>
    rm -rf <cloned_directory>/.git
  3. Подкаталог экспорта:
    Если вам нужен только определенный подкаталог репозитория без какой-либо истории контроля версий, вы можете использовать параметр --lengthвместе с git archiveдля экспорта этого конкретного подкаталога в виде архива tar или zip. Например:

    git archive --format=tar --remote=<repository_url> --prefix=<subdirectory>/ HEAD | (cd <destination_directory> && tar xf -)
  4. Разреженная проверка.
    Функция разреженной проверки 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