7. Удалённые репозитории и GitHub

Что такое удалённый репозиторий?

До сих пор мы работали только с локальным репозиторием, который находится на компьютере. Но одна из главных особенностей Git — это возможность синхронизировать свой репозиторий с удалённым репозиторием на сервере. Именно поэтому Git называют распределённой системой контроля версий.

 — это просто версия твоего проекта, размещённая где-то ещё. По сути это тот же репозиторий, только он лежит в сети и доступен для других.

В разговоре удалённый репозиторий часто называют просто словом remote. Если слышишь «добавить remote» или «запушить в remote», речь идёт именно про удалённый Git-репозиторий, а не про пульт от телевизора.

Вот как удалённый репозиторий вписывается в общую картину:

  1. Допустим, мы начали новый проект и создали локальный репозиторий на компьютере. Работа идёт уже какое-то время, и теперь мы хотим поделиться результатами с другими.

  2. Мы создаём удалённый репозиторий на сервере (например, на GitHub) и пушим (отправляем) наш локальный репозиторий туда. Запушить изменения — значит передать коммиты из локального репозитория в удалённый.

  3. Теперь другие разработчики могут клонировать удалённый репозиторий на свои компьютеры. Клонировать репозиторий — значит сделать его копию на своём компьютере.

  4. После клонирования у них появляется идентичная копия репозитория. Но если они внесут какие-то новые изменения, эти правки останутся локальными на их машинах до тех пор, пока они не запушат их в удалённый репозиторий.

  5. Допустим, кто-то другой запушил новые изменения в наш удалённый репозиторий. Мы можем стянуть (забрать) эти изменения в свой локальный репозиторий. Стянуть изменения — значит перенести коммиты из удалённого репозитория в локальный.

Конечно, если мы владеем удалённым репозиторием, то можем контролировать доступ к нему. Например, для проектов с открытым исходным кодом часто разрешают клонировать репозиторий всем желающим, но пушить новые изменения могут только избранные люди (их называют мэйнтейнерами).

Платформы вроде GitHub идут ещё дальше и позволяют другим делать

нашего репозитория (англ. fork — развилка). По сути, форк — это личная независимая копия проекта под чужим аккаунтом. В этот момент история проекта разветвляется: оригинал продолжает идти своим путём, а копия — своим. Например, если кто-то нашёл ошибку в нашем коде и хочет помочь, он может форкнуть репозиторий, исправить ошибку у себя, а затем предложить эту правку нам через (англ. pull request — запрос на включение изменений). В GitLab похожая штука называется merge request (запрос на слияние). Если нам понравится предложенный код, мы сможем «подтянуть» его в свой основной проект.

Звучит интригующе!

Проекты вроде Linux, .NET, Python и даже сам VS Code разрабатываются именно так. Любой может форкнуть эти репозитории, разработать новые функции, а затем предложить их мэйнтейнерам в виде пулл реквестов.

Если тебе это интересно, оставайся до конца основного курса. После него я подскажу продвинутые темы про совместную работу и разработку проектов с открытым исходным кодом.

Давай повторим

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

  • Делиться своей работой с другими: Когда мы пушим правки, другие разработчики могут их забрать. Удалённый репозиторий становится общим местом, где команда обменивается работой.

  • Делать резервные копии: Даже если с компьютером что-то случится, работа останется в безопасности на удалённом сервере.

  • Получать доступ к работе откуда угодно: Если есть интернет, можно забрать последние изменения из удалённого репозитория на любую машину. Например, если работа началась на рабочем компьютере, продолжить можно на домашнем, и наоборот.

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

Давай посмотрим, как можно создать новый репозиторий на GitHub.

Next step
Хочешь попробовать Сюжетный режим?

Пройди курс так, как задумано: порционное обучение, чёткий порядок и постепенное открытие статей в Gitопедии. В любой момент можно продолжить работу с настоящим Git прямо в VS Code, Cursor, Antigravity или Windsurf.

Сюжетный режим
БЕСПЛАТНО
(требуется войти в аккаунт)