git clone
git clone: клонировать удалённый репозиторий в новую директорию.
Команда git clone создаёт локальную копию удалённого репозитория Git. Она создаёт новую директорию, инициализирует в ней репозиторий Git и скачивает всё содержимое удалённого источника. Ещё команда настраивает ветки удалённого отслеживания для каждой ветки в проекте, а затем автоматически создаёт начальную локальную ветку на основе активной ветки удалённого репозитория и переключается на неё.
Во время клонирования Git автоматически устанавливает связь с оригинальным удалённым репозиторием. Это позволяет легко синхронизировать локальную копию с любыми обновлениями на сервере. Обычно такое подключение получает имя origin.
Команда git clone незаменима, когда нужно подключиться к существующему удалённому проекту, поработать вместе с командой на GitHub, GitLab или других платформах, либо просто сделать локальную резервную копию репозитория. После клонирования у тебя появляется полный доступ ко всей истории проекта и всем его веткам. Теперь можно спокойно работать автономно: удалённый репозиторий не изменится, пока не придёт время отправить свои правки.
Хотя git clone в основном применяют для удалённых репозиториев, технически этой командой можно клонировать и локальные. Например:
git clone /path/to/local/repository new-copyНо на практике это редко нужно. Чтобы сделать копию локального репозитория, обычно проще создать новый репозиторий и просто скопировать файлы, либо использовать git worktree для работы в нескольких директориях в рамках одного репозитория.
Примеры
Клонировать репозиторий с GitHub на локальную машину:
git clone https://github.com/username/repository.gitКлонировать репозиторий в конкретную директорию:
git clone https://github.com/username/repository.git my-projectКлонировать репозиторий с определённой веткой и без скачивания полной истории (поверхностное клонирование):
git clone --branch develop --depth 1 https://github.com/username/repository.gitКлонировать репозиторий со всеми подмодулями (submodules):
git clone --recursive https://github.com/username/repository.git.gitignoregit checkoutgit configgit taggit worktree