Когда мы клонируем себе репозиторий с GitHub, то не просто скачиваем копию кода с сервера на свой компьютер, а получаем полноценную рабочую среду с историей коммитов, ветками и возможностью синхронизации.
Сегодня разберёмся, как всё это работает, как клонировать себе репозиторий и что делать, если что-то пойдёт не так.
Введение в клонирование репозиториев
Git — это система управления версиями, которая позволяет отслеживать изменения в коде, работать над разными версиями проекта и синхронизировать файлы между несколькими разработчиками.
Репозиторий — это хранилище, в котором находятся файлы проекта, их предыдущие версии и история всех изменений. Он может находиться локально на компьютере или на удалённом сервере, в нашем случае — на GitHub.
Клонирование репозитория — это создание его полной копии на локальном устройстве. В отличие от обычного скачивания, при клонировании загружаются не только файлы, но и вся история изменений, включая коммиты, ветки и удалённые ссылки. После клонирования можно вносить правки, фиксить баги, коммитить изменения и синхронизировать их с удалённым репозиторием.
Можно клонировать как свой репозиторий, так и чужой, если хочется внести свой вклад в опенсорс или просто поэкспериментировать с чужим кодом.

Зачем клонировать репозиторий
Клонирование нужно, если мы хотим работать с кодом локально, изменять файлы и синхронизироваться с удалённым репозиторием. Это полезно в нескольких сценариях:
- Разработка в команде — можно вносить изменения и отправлять их обратно в репозиторий, а также получать обновления от других разработчиков.
- Работа с открытым кодом — можно клонировать чужие проекты, изучать их, тестировать или предлагать изменения.
- Удобство работы — локально проще редактировать файлы, фиксить конфликты, добавлять большие коммиты и тестировать изменения перед отправкой.
- Резервное копирование — если репозиторий пропадёт с GitHub, на локальной машине останется его копия.
Клонирование даёт полный контроль над кодом, возможность работы в офлайне и синхронизацию с удалённым репозиторием.
Способы клонирования репозитория
Клонировать репозиторий можно разными способами — через командную строку, графический интерфейс Git GUI или среду разработки. Выбор зависит от удобства и предпочтений:
- Командная строка — самый гибкий и универсальный способ, особенно если часто работаем с Git.
- Git GUI — подойдёт, если хочется визуально управлять репозиториями без команд.
- Visual Studio — удобный вариант, если используете VS для разработки и хотите интегрировать работу с Git прямо в IDE.
Клонирование через командную строку
Git CLI (Command Line Interface) — это инструмент для работы с Git через терминал или командную строку. Он позволяет выполнять разные команды — git clone, git commit, git push
и другие.
Сначала копируем ссылку на репозиторий с GitHub, затем в терминале используем команду git clone
, указывая эту ссылку. После клонирования можно переключаться между ветками, вносить изменения и отправлять их обратно в удалённый репозиторий. Как именно всё это делать — разберём чуть позже.
Клонирование с помощью Git GUI
Если не хочется работать в терминале, можно использовать графические клиенты. Они упрощают работу с Git, показывают изменения наглядно и позволяют клонировать репозитории в несколько кликов.
Самые популярные:
- GitHub Desktop — официальный клиент от GitHub, простой и удобный;
- Sourcetree — мощный инструмент с детализированным отображением коммитов;
- GitKraken — продвинутый клиент с красивым интерфейсом.
Везде есть кнопка Clone, куда нужно вставить ссылку на репозиторий, выбрать папку для загрузки и нажать ОК.

Клонирование через Visual Studio
В Visual Studio или Visual Studio Code Git уже встроен в редактор. В нём можно клонировать репозиторий прямо из интерфейса:
- Открываем Visual Studio Code.
- Вызываем командную строку Ctrl + Shift + P (на Mac ⌘ + Shift + P) и выбираем Git: Clone.
- Вставляем ссылку на репозиторий.
- Выбираем папку и ждём загрузки.

В Visual Studio (не Code) всё так же:
- Открываем Git Changes → Clone Repository.
- Вставляем ссылку и нажимаем Clone.
Удобно, если работаем в Visual Studio и хотим сразу открыть проект после клонирования.
Пошаговая инструкция по клонированию с помощью командной строки
Теперь подробно разберём, как клонировать репозиторий с GitHub на свой компьютер. Начнём с установки Git, зарегистрируемся на GitHub, разберёмся с SSH-ключами и в конце выполним само клонирование. В результате сможем работать с кодом локально, а затем отправлять изменения обратно в репозиторий.
Шаг 1: установка и настройка Git
Прежде чем клонировать репозиторий, нужно убедиться, что установлен Git. В большинстве случаев он уже есть в системе, но если нет, его можно скачать с официального сайта и установить.
Чтобы проверить, установлен ли Git, открываем терминал и вводим команду git --version
. Если Git установлен, то увидим его версию.

Дальше нужно настроить имя пользователя и email, которые будут использоваться для коммитов. Для этого используем такую команду, не забудьте заменить имя и почту на свои:
git config --global user.name "Имя"
git config --global user.email "your.email@mail.com"
Эти данные будут отображаться в истории коммитов, так что лучше указать те же, что и в GitHub.
Чтобы посмотреть все глобальные настройки Git, вводим команду git config --list --global
. Если нужно изменить какие-то параметры, можно просто снова выполнить команду git config --global
и указать новые значения.
Шаг 2: регистрация на GitHub
Если ещё нет аккаунта, регистрируемся на GitHub. Это бесплатно, и базового аккаунта хватит для большинства задач.
После регистрации заходим в настройки профиля: Settings → SSH and GPG keys. Этот раздел понадобится для следующего шага, не закрываем это окошко, пусть повисит немного на фоне.

Шаг 3: создание SSH-ключа
SSH (Secure Shell) — это безопасный способ подключения к репозиторию без необходимости вводить логин и пароль. Если настроить SSH, можно удобно работать с удалёнными репозиториями, не вводя учётные данные при каждом действии.
Для начала проверим, есть ли уже сгенерированные SSH-ключи. Это можно посмотреть либо в профиле GitHub, либо выполнив команду в терминале:
ls -al ~/.ssh
Если в списке есть файлы id_rsa.pub или id_ed25519.pub, значит, SSH-ключи уже созданы, и можно сразу добавить их в GitHub. Если терминал говорит, что такой директории нет, значит, ключи ещё не создавались.
Чтобы создать новый ключ, выполняем команду (и вводим тот же email, который указали при настройке Git):
ssh-keygen -t ed25519 -C "your.email@mail.com"
Терминал сообщит, что создаёт новый ключ, и попросит указать путь для сохранения ключа (по умолчанию ~/.ssh/id_ed25519). Можно нажать Enter, чтобы использовать стандартный путь.
Дальше терминал попросит задать парольную фразу — можно что-то ввести или оставить пустым. Если указать пароль, то при каждом использовании ключа GitHub будет его запрашивать.
После создания ключа нужно добавить его в SSH-агент, чтобы Git мог использовать ключ без лишних запросов. Вводим команды:
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519

Теперь нужно добавить публичный ключ (id_ed25519.pub) в свой профиль GitHub. Для этого копируем ключ в буфер обмена:
cat ~/.ssh/id_ed25519.pub | pbcopy # для macOS
clip < ~/.ssh/id_ed25519.pub # для Windows
Переходим в свой профиль GitHub → Settings → SSH and GPG keys и нажимаем New SSH key. Там вводим название (например, «Рабочий ноутбук»), вставляем скопированный ключ в поле Key и нажимаем Add SSH key.

Дальше GitHub попросит ввести пароль от аккаунта, чтобы подтвердить действие. После этого в списке ключей в профиле появится новый Authentication keys.
Теперь проверим, всё ли сработало и установлено ли SSH-соединение. Для этого вводим команду:
ssh -T git@github.com
Если всё ок, то получим сообщение You've successfully authenticated, but GitHub does not provide shell access:

Шаг 4: клонирование репозитория
Дальше нам понадобится ссылка на репозиторий и папка, куда мы хотим его склонировать. На GitHub можно выбрать один из двух вариантов:
- HTTPS — удобно, если не настроены SSH-ключи.
- SSH — предпочтительный вариант, если уже настроены SSH-ключи. Так не придётся вводить логин и пароль при каждом взаимодействии с удалённым репозиторием.
Допустим, мы хотим склонировать через SSH репозиторий Spoon-Knife. Для этого сначала копируем ссылку на него.

Заходим на страницу репозитория, нажимаем на кнопку Code, выбираем вкладку SSH и копируем оттуда ссылку:
git@github.com:octocat/Spoon-Knife.git
Теперь в терминале переходим в папку, где хотим разместить клонированный проект. Например, если хотим поместить его в ~/projects/, то выполняем:
cd ~/projects/
Затем вводим команду клонирования:
git clone git@github.com:octocat/Spoon-Knife.git

После выполнения команды в выбранной папке появится директория Spoon-Knife:
cd Spoon-Knife
ls -la

Всё! Теперь можно открыть папку с проектом в редакторе кода и начать работу:

Клонированный репозиторий связан с удалённым репозиторием на GitHub, и любые изменения можно коммитить и пушить обратно.
Проблемы и их решения
Иногда при клонировании возникают ошибки доступа, проблемы с аутентификацией или ошибки с URL. Посмотрим, что с этим делать.
Ошибка доступа (401, 403)
Если при клонировании через HTTPS появляется ошибка 401 Unauthorized или 403 Forbidden, это значит, что к репозиторию нет доступа. Тогда нужно:
- Проверить, что репозиторий существует и у нас есть к нему доступ (если он приватный, доступ должен быть выдан владельцем).
- Использовать персональный токен вместо пароля, так как GitHub больше не поддерживает аутентификацию по паролю через HTTPS.
Как исправить:
- Создаём personal access token на GitHub.
- При клонировании вводим токен вместо пароля.
Ошибка Repository not found
Эта ошибка возникает, если репозиторий не существует или указана неправильная ссылка.
Как исправить:
- Проверяем, что правильно скопировали ссылку для клонирования (лучше копировать напрямую с GitHub).
- Если репозиторий приватный, проверяем, что у нас есть права на доступ.
Ошибка с SSH-ключом
Если используем SSH, но клонирование не срабатывает, возможно, проблема с ключами.
Как исправить:
- Проверяем, что SSH-ключ добавлен в учётную запись GitHub:
ssh -T git@github.com
Если всё настроено правильно, появится сообщение Hi USERNAME! You've successfully authenticated. - Проверяем, что наш публичный ключ добавлен в GitHub в разделе Settings → SSH and GPG keys.
Ошибка Remote HEAD refers to nonexistent ref
Если после клонирования Git пишет remote HEAD refers to nonexistent ref, значит, в репозитории удалили основную ветку.
Как исправить:
- Посмотреть доступные ветки:
git branch -a
- Переключиться на нужную ветку:
git checkout main
Если ничего не помогает, тогда дальше углубляемся в документацию или идём на StackOverflow ¯\_(ツ)_/¯