Что такое удалённый репозиторий?
До сих пор мы работали только с локальным репозиторием, который находится на компьютере. Но одна из главных особенностей Git — это возможность синхронизировать свой репозиторий с удалённым репозиторием на сервере. Именно поэтому Git называют распределённой системой контроля версий.
— это просто версия твоего проекта, размещённая где-то ещё. По сути это тот же репозиторий, только он лежит в сети и доступен для других.
В разговоре удалённый репозиторий часто называют просто словом remote. Если слышишь «добавить remote» или «запушить в remote», речь идёт именно про удалённый Git-репозиторий, а не про пульт от телевизора.
Вот как удалённый репозиторий вписывается в общую картину:
-
Допустим, мы начали новый проект и создали локальный репозиторий на компьютере. Работа идёт уже какое-то время, и теперь мы хотим поделиться результатами с другими.
-
Мы создаём удалённый репозиторий на сервере (например, на GitHub) и пушим (отправляем) наш локальный репозиторий туда. Запушить изменения — значит передать коммиты из локального репозитория в удалённый.
-
Теперь другие разработчики могут клонировать удалённый репозиторий на свои компьютеры. Клонировать репозиторий — значит сделать его копию на своём компьютере.
-
После клонирования у них появляется идентичная копия репозитория. Но если они внесут какие-то новые изменения, эти правки останутся локальными на их машинах до тех пор, пока они не запушат их в удалённый репозиторий.
-
Допустим, кто-то другой запушил новые изменения в наш удалённый репозиторий. Мы можем стянуть (забрать) эти изменения в свой локальный репозиторий. Стянуть изменения — значит перенести коммиты из удалённого репозитория в локальный.
Конечно, если мы владеем удалённым репозиторием, то можем контролировать доступ к нему. Например, для проектов с открытым исходным кодом часто разрешают клонировать репозиторий всем желающим, но пушить новые изменения могут только избранные люди (их называют мэйнтейнерами).
Платформы вроде GitHub идут ещё дальше и позволяют другим делать нашего репозитория (англ. fork — развилка). По сути, форк — это личная независимая копия проекта под чужим аккаунтом. В этот момент история проекта разветвляется: оригинал продолжает идти своим путём, а копия — своим. Например, если кто-то нашёл ошибку в нашем коде и хочет помочь, он может форкнуть репозиторий, исправить ошибку у себя, а затем предложить эту правку нам через (англ. pull request — запрос на включение изменений). В GitLab похожая штука называется merge request (запрос на слияние). Если нам понравится предложенный код, мы сможем «подтянуть» его в свой основной проект.
Проекты вроде Linux, .NET, Python и даже сам VS Code разрабатываются именно так. Любой может форкнуть эти репозитории, разработать новые функции, а затем предложить их мэйнтейнерам в виде пулл реквестов.
Если тебе это интересно, оставайся до конца основного курса. После него я подскажу продвинутые темы про совместную работу и разработку проектов с открытым исходным кодом.
С удалённым репозиторием можно:
-
Делиться своей работой с другими: Когда мы пушим правки, другие разработчики могут их забрать. Удалённый репозиторий становится общим местом, где команда обменивается работой.
-
Делать резервные копии: Даже если с компьютером что-то случится, работа останется в безопасности на удалённом сервере.
-
Получать доступ к работе откуда угодно: Если есть интернет, можно забрать последние изменения из удалённого репозитория на любую машину. Например, если работа началась на рабочем компьютере, продолжить можно на домашнем, и наоборот.
Самая популярная платформа для хостинга Git-репозиториев — это GitHub. Сейчас это крупнейшее в мире хранилище исходного кода. Использовать его для публичных репозиториев можно бесплатно, и это отличное место, чтобы делиться своими проектами с другими.
Давай посмотрим, как можно создать новый репозиторий на GitHub.
Пройди курс так, как задумано: порционное обучение, чёткий порядок и постепенное открытие статей в Gitопедии. В любой момент можно продолжить работу с настоящим Git прямо в VS Code, Cursor, Antigravity или Windsurf.
(требуется войти в аккаунт)