Remote и GitHub: что такое удалённый репозиторий

Выходим за пределы своего компьютера: знакомимся с удалёнными репозиториями и GitHub.

Remote (удалённый репозиторий) — это версия вашего репозитория, размещённая на сервере (например, на GitHub), с которой синхронизируются все участники.

Зачем нужны удалённые репозитории

Пока репозиторий живёт только на вашем компьютере, у него две проблемы: им нельзя поделиться с коллегами и он погибнет вместе с диском. Удалённый репозиторий решает обе: это общая «точка сборки» в интернете, куда все отправляют свою работу и откуда забирают чужую. Заодно это надёжный бэкап.

Что такое GitHub

GitHub — самый популярный хостинг git-репозиториев. Помимо хранения кода он даёт инструменты для совместной работы: обсуждения, ревью кода, задачи (issues), автоматизацию. Альтернативы — GitLab, Bitbucket, Gitea. Для git все они «удалённые серверы» и работают одинаково.

origin — имя по умолчанию

У remote есть короткое имя-псевдоним, чтобы не писать длинный URL каждый раз. По соглашению основной удалённый репозиторий называют origin. Когда вы клонируете проект, git сам заводит remote с именем origin, указывающий на источник.

Посмотреть список remote с адресами:

git remote -v

Вывод:

origin	https://github.com/ivan/my-project.git (fetch)
origin	https://github.com/ivan/my-project.git (push)

Строки fetch и push — адреса для скачивания и отправки (обычно совпадают).

HTTPS или SSH

Подключиться к GitHub можно двумя способами:

СпособURLАутентификация
HTTPShttps://github.com/ivan/repo.gitтокен (PAT)
SSH[email protected]:ivan/repo.gitSSH-ключ

Важно: с 2021 года GitHub не принимает обычный пароль от аккаунта при работе через HTTPS. Используйте персональный токен доступа (PAT) вместо пароля либо настройте SSH-ключ — это удобнее для постоянной работы.

Локальный и удалённый — две независимые копии

Ключевая мысль: ваш локальный репозиторий и remote — это две отдельные копии. Коммит на вашей машине не появляется на GitHub автоматически. Чтобы они синхронизировались, есть специальные команды — push, fetch, pull, которые мы разберём в следующих уроках.

Зачем настраивать SSH-ключ

Если вы работаете с GitHub каждый день, вводить токен при каждом push утомительно. Поэтому удобнее один раз настроить SSH-ключ: вы генерируете пару ключей, публичный добавляете в настройки GitHub, а git дальше аутентифицируется автоматически, без ввода пароля. Это и безопаснее (приватный ключ не покидает ваш компьютер), и удобнее в ежедневной работе.

Публичные и приватные репозитории

На GitHub репозиторий может быть публичным (виден всем, типично для open source) или приватным (виден только вам и приглашённым). На git-команды это почти не влияет — push, pull, clone работают одинаково, — но к приватному репозиторию без прав доступа не подключиться. Выбирайте видимость осознанно: код, содержащий коммерческую логику или секреты, должен быть приватным.

Итог

  • Remote — копия репозитория на сервере для обмена кодом и бэкапа.
  • GitHub — популярный хостинг git; основной remote по соглашению зовут origin.
  • Для HTTPS используйте токен (PAT), не пароль; для постоянной работы удобен SSH-ключ.
Проверьте себя
1. Что такое remote в git?
AРезервная копия на флешке
BВерсия репозитория на сервере, с которой синхронизируются участники
CСпециальная ветка main
DФайл настроек редактора
2. Какое имя по умолчанию получает основной удалённый репозиторий после клонирования?
Amain
Bremote
Corigin
Dsource
3. Как сегодня аутентифицироваться на GitHub при работе через HTTPS?
AОбычным паролем от аккаунта
BПерсональным токеном доступа (PAT)
CТолько по телефону
DАутентификация не требуется
Поддержать проект