Удалённый репозиторий
В Git удалённый репозиторий (англ. remote) — это версия твоего проекта, которая хранится где-то в интернете, например, на GitHub, GitLab или Bitbucket. Воспринимай его как общую базу для кода. Это место, куда любой участник команды может отправить обновления, откуда может скачать последнюю версию и поддерживать проект в синхронизированном состоянии.
Когда говорят «добавь remote» или «запушь в remote», имеется в виду отправка локальной работы в эту общую онлайн-копию, а не пульт от телевизора (по-английски пульт — тоже remote).
Удалённый репозиторий важен по нескольким серьёзным причинам:
-
Он позволяет сотрудничать. У каждого может быть своя локальная копия, куда можно вносить изменения и затем отправлять их в общий удалённый репозиторий. Остальные могут подтягивать эти правки к себе. Так разработчики из разных городов или часовых поясов могут оставаться на одной волне, не мешая друг другу.
-
Он работает как страховочная сетка. Если твой ноутбук сломается, код не пропадёт. Так как проект живёт на удалённом сервере, можно всё восстановить, просто склонировав его заново. По сути, это внешняя резервная копия твоей работы.
-
Он делает твой код доступным где угодно. Можно стянуть проект на другой компьютер, пописать код в кафе или провести код-ревью с телефона. Пока есть интернет, твой код путешествует с тобой.
-
Он упрощает автоматизацию. Большинство современных команд подключают свои удалённые репозитории к системам, которые автоматически тестируют, собирают и разворачивают код каждый раз, когда кто-то пушит изменения. Это значит, что ошибки отлавливаются раньше, и программа всегда готова к релизу.
Интересно, как твой локальный репозиторий следит за тем, что происходит на сервере? Git обновляет удалённо-отслеживаемые ветки (например, origin/main) каждый раз при выполнении fetch или pull, что позволяет сравнить историю перед слиянием (merge).
Примеры
Добавить удалённый репозиторий по указанному URL в список удалённых репозиториев и назначить ему алиас origin:
git remote add origin https://github.com/user/repo.gitСтянуть изменения из удалённой ветки, связанной с веткой main в удалённом репозитории origin, и, если они есть, влить их в локальную ветку main:
git pull origin mainОтправить (запушить) изменения в удалённую ветку, связанную с веткой main в удалённом репозитории origin:
git push origin mainСклонировать удалённый репозиторий по указанному URL на свой компьютер. Можно передать ещё один аргумент, чтобы указать имя папки, в которую будет склонирован репозиторий:
git clone https://github.com/user/repo.gitСравнить изменения между твоей локальной веткой и удалённой веткой:
git diff main origin/mainВ этих примерах origin — это общепринятое название для удалённого репозитория по умолчанию, но можно использовать любое. Ветка main часто используется как основная в репозитории, но это зависит от договорённостей в конкретном проекте.
.gitignoregit checkoutgit configgit taggit worktree