Как клонировать репозиторий на GitHub

Как клонировать репозиторий на GitHub

Через командную строку или IDE

Когда мы клонируем себе репозиторий с GitHub, то не просто скачиваем копию кода с сервера на свой компьютер, а получаем полноценную рабочую среду с историей коммитов, ветками и возможностью синхронизации.

Сегодня разберёмся, как всё это работает, как клонировать себе репозиторий и что делать, если что-то пойдёт не так.

Введение в клонирование репозиториев

Git — это система управления версиями, которая позволяет отслеживать изменения в коде, работать над разными версиями проекта и синхронизировать файлы между несколькими разработчиками.

Репозиторий — это хранилище, в котором находятся файлы проекта, их предыдущие версии и история всех изменений. Он может находиться локально на компьютере или на удалённом сервере, в нашем случае — на GitHub.

Клонирование репозитория — это создание его полной копии на локальном устройстве. В отличие от обычного скачивания, при клонировании загружаются не только файлы, но и вся история изменений, включая коммиты, ветки и удалённые ссылки. После клонирования можно вносить правки, фиксить баги, коммитить изменения и синхронизировать их с удалённым репозиторием.

Можно клонировать как свой репозиторий, так и чужой, если хочется внести свой вклад в опенсорс или просто поэкспериментировать с чужим кодом.

Как клонировать репозиторий на GitHub
Работа с форками и клонированием репозитория в 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, куда нужно вставить ссылку на репозиторий, выбрать папку для загрузки и нажать ОК.

Как клонировать репозиторий на GitHub

Клонирование через Visual Studio

В Visual Studio или Visual Studio Code Git уже встроен в редактор. В нём можно клонировать репозиторий прямо из интерфейса:

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

Как клонировать репозиторий на GitHub

В Visual Studio (не Code) всё так же:

  1. Открываем Git Changes → Clone Repository.
  2. Вставляем ссылку и нажимаем Clone.

Удобно, если работаем в Visual Studio и хотим сразу открыть проект после клонирования.

Пошаговая инструкция по клонированию с помощью командной строки

Теперь подробно разберём, как клонировать репозиторий с GitHub на свой компьютер. Начнём с установки Git, зарегистрируемся на GitHub, разберёмся с SSH-ключами и в конце выполним само клонирование. В результате сможем работать с кодом локально, а затем отправлять изменения обратно в репозиторий.

Шаг 1: установка и настройка Git

Прежде чем клонировать репозиторий, нужно убедиться, что установлен Git. В большинстве случаев он уже есть в системе, но если нет, его можно скачать с официального сайта и установить.

Чтобы проверить, установлен ли Git, открываем терминал и вводим команду git --version. Если Git установлен, то увидим его версию.

Как клонировать репозиторий на GitHub

Дальше нужно настроить имя пользователя и 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. Этот раздел понадобится для следующего шага, не закрываем это окошко, пусть повисит немного на фоне.

Как клонировать репозиторий на GitHub

Шаг 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
Как клонировать репозиторий на GitHub

Теперь нужно добавить публичный ключ (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

Дальше GitHub попросит ввести пароль от аккаунта, чтобы подтвердить действие. После этого в списке ключей в профиле появится новый Authentication keys.

Теперь проверим, всё ли сработало и установлено ли SSH-соединение. Для этого вводим команду:

ssh -T git@github.com

Если всё ок, то получим сообщение You've successfully authenticated, but GitHub does not provide shell access:

Как клонировать репозиторий на GitHub

Шаг 4: клонирование репозитория

Дальше нам понадобится ссылка на репозиторий и папка, куда мы хотим его склонировать. На GitHub можно выбрать один из двух вариантов:

  • HTTPS — удобно, если не настроены SSH-ключи.
  • SSH — предпочтительный вариант, если уже настроены SSH-ключи. Так не придётся вводить логин и пароль при каждом взаимодействии с удалённым репозиторием.

Допустим, мы хотим склонировать через SSH репозиторий Spoon-Knife. Для этого сначала копируем ссылку на него.

Как клонировать репозиторий на GitHub

Заходим на страницу репозитория, нажимаем на кнопку Code, выбираем вкладку SSH и копируем оттуда ссылку:

git@github.com:octocat/Spoon-Knife.git

Теперь в терминале переходим в папку, где хотим разместить клонированный проект. Например, если хотим поместить его в ~/projects/, то выполняем:

cd ~/projects/

Затем вводим команду клонирования:

git clone git@github.com:octocat/Spoon-Knife.git
Как клонировать репозиторий на GitHub

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

cd Spoon-Knife
ls -la
Как клонировать репозиторий на GitHub

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

Как клонировать репозиторий на GitHub

Клонированный репозиторий связан с удалённым репозиторием на 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 ¯\_(ツ)_/¯

Обложка:

Алексей Сухов

Корректор:

Елена Грицун

Вёрстка:

Кирилл Климентьев

Соцсети:

Юлия Зубарева

Получите ИТ-профессию
В «Яндекс Практикуме» можно стать разработчиком, тестировщиком, аналитиком и менеджером цифровых продуктов. Первая часть обучения всегда бесплатная, чтобы попробовать и найти то, что вам по душе. Дальше — программы трудоустройства.
Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию
Вам может быть интересно
hard