Справочник · Git
git clone: копия репозитория на компьютер
Команда git clone скачивает удалённый репозиторий целиком — все файлы и всю историю коммитов — в новую папку на компьютере. Достаточно передать адрес: git clone https://github.com/user/project.git. После клонирования можно работать с проектом локально и отправлять изменения обратно через git push.
git clone адрес— создаст папку с именем репозитория.git clone адрес папка— в папку с другим именем,.— в текущую пустую.- HTTPS проще для старта, SSH удобнее при частой работе.
- Для приватного репозитория по HTTPS нужен токен, а не пароль от GitHub.
- Удалённый репозиторий автоматически получает имя
origin.
Минимальный пример
git clone https://github.com/user/praktum-site.git
cd praktum-site
git statusGit создаст папку praktum-site, скачает в неё файлы и историю, переключится на основную ветку. После cd в эту папку проект готов к работе: git status покажет «nothing to commit, working tree clean».
Что делает git clone
| Что | Зачем |
|---|---|
| Папка проекта | рабочие файлы основной ветки |
Скрытая папка .git | вся история коммитов и настройки репозитория |
Удалённый репозиторий origin | адрес, откуда склонировали; туда делают pull и push |
Ветки вида origin/main | копии веток с сервера на момент клонирования |
Локальная ветка main | связана с origin/main для pull и push |
Проверить адрес удалённого репозитория можно командой git remote -v, список всех веток — git branch -a.
В какую папку клонировать
git clone https://github.com/user/praktum-site.git # папка praktum-site
git clone https://github.com/user/praktum-site.git my-site # папка my-site
mkdir site && cd site && git clone https://github.com/user/praktum-site.git . # в текущуюТочка в конце означает «в текущую папку» — она должна быть пустой. Не клонируй репозиторий внутрь другого репозитория: получится вложенная папка с собственным .git, и внешний Git перестанет видеть её файлы как обычные.
HTTPS или SSH
git clone https://github.com/user/project.git # HTTPS
git clone git@github.com:user/project.git # SSHАдрес обоих видов есть на странице репозитория на GitHub под кнопкой Code. Публичный репозиторий по HTTPS скачивается без всякой настройки. Для приватного и для push по HTTPS нужен вход: GitHub не принимает пароль от аккаунта — нужен персональный токен или менеджер учётных данных (Git Credential Manager на Windows открывает окно входа сам). SSH требует один раз создать ключ и добавить его в настройки GitHub, зато потом не спрашивает пароль.
Полезные параметры
| Параметр | Что делает |
|---|---|
--branch dev или -b dev | сразу переключиться на ветку dev |
--single-branch | скачать только одну ветку |
--depth 1 | только последний коммит, без истории — быстро и мало места |
--recurse-submodules | скачать и вложенные подмодули |
--origin upstream | назвать удалённый репозиторий не origin |
git clone --depth 1 --branch main https://github.com/user/big-project.gitНеглубокий клон (--depth 1) удобен, чтобы быстро посмотреть код или собрать проект. Если потом понадобится вся история, её можно докачать командой git fetch --unshallow.
Что делать после клонирования
git pull # забрать новые изменения с сервера
git switch -c feature/header # создать ветку для своей работы
# … правки …
git add .
git commit -m "Добавить шапку"
git push -u origin feature/headerКлонируют один раз, дальше синхронизируются через git pull и git push. Перед началом работы всегда делай pull, чтобы не править устаревшие файлы. Свою задачу удобно делать в отдельной ветке и предлагать через pull request.
Clone или fork
git clone — команда Git: копия репозитория на твоём компьютере. Fork — функция GitHub: копия чужого репозитория в твоём аккаунте на сервере. Если у тебя нет права записи в чужой проект, сначала делают fork, затем клонируют свой fork, работают в нём и предлагают изменения автору через pull request.
Частые ошибки при клонировании
| Сообщение | Причина и решение |
|---|---|
Repository not found | опечатка в адресе, репозиторий приватный или нет доступа; проверь адрес и вход |
Permission denied (publickey) | SSH-ключ не создан или не добавлен в GitHub; добавь ключ или клонируй по HTTPS |
Authentication failed | по HTTPS ввели пароль от аккаунта вместо токена |
destination path already exists | папка с таким именем уже есть и не пуста; укажи другое имя |
'git' is not recognized | Git не установлен или не добавлен в PATH |
git clone или скачать ZIP
Вся история, связь с сервером: можно делать pull, коммиты и push.
Только текущие файлы без истории и без связи с репозиторием. Подходит, чтобы просто посмотреть код.
Частые ошибки
- Вводят пароль от GitHub при клонировании приватного репозитория по HTTPS вместо токена.
- Клонируют репозиторий внутрь другого репозитория.
- Скачивают ZIP, а потом удивляются, что не работает git push.
- Забывают
cdв папку проекта и выполняют команды Git снаружи. - Клонируют заново при каждом обновлении вместо
git pull.
Доступность
Git работает в терминале, который хорошо читается скринридерами. Для тех, кому неудобна командная строка, есть графические клиенты (GitHub Desktop, встроенный Git в VS Code): кнопка «Clone repository» выполняет ту же команду. Сообщения об ошибках Git текстовые — их можно скопировать и найти решение.
Поддержка браузерами
git clone работает одинаково в Git для Windows, macOS и Linux. Параметр --depth и протоколы HTTPS и SSH поддерживаются всеми современными версиями Git и хостингами GitHub, GitLab и Bitbucket.
Практика
Склонируй любой публичный репозиторий с GitHub в папку practice, проверь адрес удалённого репозитория и список веток. Затем сделай неглубокий клон того же репозитория в папку practice-light и сравни размер папок .git.
Показать решение
git clone https://github.com/user/project.git practice
cd practice
git remote -v
git branch -a
cd ..
git clone --depth 1 https://github.com/user/project.git practice-light
# сравни размеры: du -sh practice/.git practice-light/.git (macOS/Linux, Git Bash)Частые вопросы
Как склонировать репозиторий с GitHub?
Скопируй адрес на странице репозитория под кнопкой Code и выполни git clone адрес в терминале в нужной папке.
Как склонировать приватный репозиторий?
Нужен доступ к нему. По HTTPS — войди через менеджер учётных данных или используй персональный токен вместо пароля, по SSH — добавь свой ключ в настройки GitHub.
Как склонировать в текущую папку?
Добавь точку в конце: git clone адрес .. Папка должна быть пустой.
Как скачать только одну ветку?
git clone --branch имя --single-branch адрес. Добавь --depth 1, если история не нужна.
Чем clone отличается от pull?
clone один раз создаёт локальную копию репозитория. pull потом забирает новые изменения в уже склонированный проект.