Когда вы используете команду «git clone» в Git, она создает копию удаленного репозитория на вашем локальном компьютере. По умолчанию клонируется вся история репозитория, включая все ветки и теги. Однако вы можете использовать опцию «глубина», чтобы клонировать только определенное количество последних коммитов, что может быть полезно, если вам не нужна полная история и вы хотите сэкономить время и дисковое пространство.
Вот несколько методов, которые можно использовать для клонирования репозитория Git определенной глубины, а также примеры кода:
Метод 1: использование параметра «–length» с «git clone»:
git clone --depth <depth> <repository_url>
Замените количеством недавних коммитов, которые вы хотите клонировать, и URL-адресом репозитория, который вы хотите клонировать.
Пример:
git clone --depth 1 https://github.com/example/repository.git
Это клонирует самый последний коммит репозитория.
Метод 2: клонирование и последующее использование «git pull» для усечения истории:
git clone <repository_url>
cd <repository_directory>
git pull --depth=<depth>
После клонирования репозитория перейдите в клонированный каталог и используйте команду «git pull» с параметром «–length», чтобы обрезать историю до нужной глубины.
Пример:
git clone https://github.com/example/repository.git
cd repository
git pull --depth=3
При этом будет клонирован весь репозиторий, а затем история будет сокращена до трех последних коммитов.
Метод 3. Клонирование поверхностной копии и преобразование ее в полную копию:
git clone --depth <depth> <repository_url>
cd <repository_directory>
git fetch --unshallow
При использовании этого метода вы сначала клонируете репозиторий на небольшую глубину, а затем преобразуете его в полную копию, извлекая оставшуюся историю.
Пример:
git clone --depth 5 https://github.com/example/repository.git
cd repository
git fetch --unshallow
При этом сначала будут клонированы пять последних коммитов, а затем будет получена полная история.
Метод 4. Использование параметра «git clone –filter» (Git 2.19+):
git clone --filter=tree:0 --depth <depth> <repository_url>
Этот метод использует команду «git clone» с опцией «–filter» для указания частичного клонирования, ограничивая клонирование только последним коммитом.
Пример:
git clone --filter=tree:0 --depth 1 https://github.com/example/repository.git
При этом будет клонирован только последний коммит.