Как использовать git remote: полный гид по работе с удаленными репозиториями
В ходе совместной разработки проектов нередко возникает необходимость делиться сериями коммитов с участниками. В системе управления версиями кода Git есть такая опция — для обмена данными нужны удаленные репозитории, которые размещаются в локальной или глобальной сети. В статье подробно рассказываем, что это за инструменты, как их настраивать и работать с ними.

Что такое удаленный репозиторий и команда git remote
Удаленные репозитории — это сохраненные в глобальной или локальной сети версии проектов, доступные для чтения или внесения изменений. Пользователи Git должны уметь с ними работать хотя бы на базовом уровне. Чему нужно научиться:
Добавлять репозитории и удалять неактуальные.
Клонировать версии проекта на свое устройство.
Передавать изменения и получать наработки от коллег.
Управлять ветками коммитов.
Выставлять настройки приватности.
Аргументы за использование удаленных репозиториев в Git:
Возможность трудиться над одним проектом совместно и без проблем обмениваться изменениями.
Быстрое создание веток коммитов и их слияние в основную кодовую базу при необходимости.
Обеспечение доступности проекта даже при сбое на локальном компьютере.
Возможность восстановить данные при утере локального репозитория.
Доступ к истории изменений проекта для всех участников.
Поддержка любого количества удаленных репозиториев для одного проекта.
Резюмируем — с помощью удаленных репозиториев удобно работать над проектом всей командой и своевременно получать данные об изменениях.
Основы git remote

Git remote — команда для управления связями между локальным репозиторием и другими версиями кода. Она позволяет подключать, просматривать, переименовывать и ликвидировать удаленные репозитории.
Для удобства перечислили в таблице основные команды с git remote. Подробнее расскажем о них в следующих разделах статьи.
Команда | Назначение |
git remote | Вывод списка всех репозиториев, привязанных к проекту |
git remote -v | Открытие списка с URL-адресами |
git remote add <имя> | Добавление нового репозитория |
git remote remove <имя> | Удаление репозитория из конфигурации |
git remote rename <старое> <новое> | Присвоение нового имени удаленному репозиторию |
git remote set-url <имя> | Изменение URL удаленного репозитория |
Применяя указанные команды, вместо скобок нужно подставлять свои значения. Дальше рассказываем, как это делать.
Создание и настройка удаленного репозитория
Чтобы начать работать с версиями, зайдите на сайт GitHub и создайте репозиторий. Это делается с помощью опции New repository.

Дальше несложные настройки:
Выбор аккаунта, который будет привязан к удаленному репозиторию. Имя владельца нужно ввести в поле Owner.
Указание наименования репозитория в поле Repository name.
Краткое описание проекта — Description.
Настройки приватности. Если это Public, то репозиторий будет виден всем, но коммитить смогут те, кому вы предоставите соответствующие полномочия. При выборе Private репозиторий по умолчанию будет доступен только владельцу, но вы сможете предоставить доступ другим пользователям с разными уровнями прав (чтение, запись, администрирование).
Если планируете добавить техническую документацию, воспользуйтесь опцией Add a README file. Чтобы внести файлы, которые не попадут в репозиторий, выберите gitignore.

Добавление удаленного репозитория
Чтобы подключить удаленный репозиторий и назначить ему короткое имя (shortname), выполните команду: git remote add <shortname> <url>.
Как это может выглядеть:
Короткое имя в примере — pb. В команде оно заменяет полный URL. Например, вам нужно получить из репозитория последние изменения — выполните для этого команду git fetch pb.
Форки и пул-реквесты
Форк (Fork) — это копия чужого репозитория в вашем аккаунте GitHub. Она нужна, чтобы:
Вносить изменения, не затрагивая оригинальный проект.
Экспериментировать с кодом.
Предлагать правки через пул-реквесты (Pull Request, PR) — запросы на слияние изменений из какой-либо ветки в главную. С их помощью можно предлагать автору проекта принять правки.
Чтобы сформировать форк, на странице репозитория выберите опцию Fork и определитесь, куда направить копию, допустим, себе в аккаунт. После этого у вас будет версия удаленного репозитория, которую при желании можно клонировать с помощью команды git clone. Алгоритм выглядит так: https://github.com/<ваш_логин>/<репозиторий>.git.

Чтобы создать пул-реквест, перейдите на страницу форка, найдите Compare&pull request, выберите ветки для правок, внесите изменения и нажмите Create pull request.
Настройка подключения по HTTPS и SSH
Для работы с репозиториями можно использовать протоколы HTTPS и SSH. Рассказываем, как подключаться через каждый из них и в чем различия.
Подключение через HTTPS:
Получите HTTPS-ссылку из репозитория.
В локальном репозитории выполните: команду git remote add origin https://github.com/user/repo.git. При первом git push Git запросит логин/пароль или токен. Чтобы не указывать их каждый раз, с помощью команды git config --global credential.helper store можно настроить кеш.
Для каждой операции, которая требует авторизации при подключении через HTTPS (например, git push), Git будет запрашивать логин и пароль.
Иногда используется personal access token — специальный доступ-токен, заменяющий логин/пароль.
При подключении через SSH аутентификация на сервисе осуществляется без логинов/паролей и токена — с помощью пары ключей: приватного (который хранится на устройстве пользователя) и публичного (загруженного в Git-сервис). Как все организовать:
Создайте SSH-ключ (если его нет) с помощью команды ssh-keygen -t ed25519 -C «your_email@example.com» или -t rsa -b 4096 для RSA-ключа.
Добавьте публичный ключ на Git-сервис (например, GitHub → Settings → SSH keys).
Подключите репозиторий с помощью команды git remote add origin git@github.com:user/repo.git.
Проверьте соединение: ssh -T git@github.com.

Для наглядности посмотрим на различия и преимущества между этими способами подключения в виде таблицы.
Параметр | HTTPS | SSH |
Уровень безопасности | Высокий (через HTTPS+токен) | Очень высокий (ключевая пара) |
Удобство | Нужно вводить логин/токен (можно кэшировать) | Настраивается 1 раз, дальше работает без пароля |
Сложность настройки | Минимальная | Требует генерации и загрузки ключей |
Совместимость | Работает везде | Может блокироваться межсетевым экраном |
Подходит для CI/CD | Иногда неудобно | Да |
Работа с удаленными репозиториями
Разберем на примерах, как оперировать основными командами для различных действий с существующими удаленными репозиториями.
Просмотр и изменение репозиториев
Просмотреть настроенные удаленные репозитории позволяет команда git remote. После ее использования появится список, где будут наименования и всех клонированных версий.
Пример того, как это может выглядеть:
Если добавить ключ -v, можно посмотреть все адреса, привязанные к конкретному удаленному репозиторию. Это будет выглядеть так:
Однако вывод команды позволит только смотреть существующие репозитории, но не даст информации, какие права доступа для вас настроены в отношении каждого из них.
Если хотите узнать больше о каком-то удаленном репозитории, примените команду: git remote show <remote>. Например, чтобы просмотреть данные о репозитории с именем origin, выполните:
Эта команда выводит URL удаленного репозитория и список отслеживаемых веток.
Смена имени, удаление удаленных репозиториев
Если хотите поменять имя удаленного репозитория, воспользуйтесь командой git remote rename <старое_имя> <новое_имя>. Учитывайте, что после переименования изменятся и ссылки на ветки — в них будет уже новое имя.
Иногда возникает необходимость удалить репозиторий, например, если поменяли сервер, версия проекта утратила актуальность или вы не планируете дальше отслеживать изменения. Для удаления воспользуйтесь командой git remote remove <имя>. Удалится не только репозиторий, но и все отслеживаемые ветки и настройки.
Синхронизация с удаленными репозиториями
Чтобы получать все сведения по проекту, которых у вас еще нет, можно пользоваться командами Fetch и Pull. Объясняем, как их выполнять и чем они отличаются.
Получение изменений из удаленного репозитория
Чтобы получить изменения, которыми вы еще не располагаете, примените команду git fetch [remote-name]. Если все сделано правильно, появятся ссылки на актуальные ветки коммитов по проекту.
Если нужно извлечь наработки, отправленные на клонированный репозиторий, пригодится команда git fetch origin. Все изменения отразятся в локальном репозитории, но не сольются с вашими наработками. Объединять данные придется самостоятельно.
Для получения и слияния изменений можно применить команду git pull. Она используется, если было заранее настроено отслеживание удаленной ветки. Для этого нужно выполнить команду git clone, которая настраивает локальную ветку на отслеживание удаленной, которая находится на сервере, откуда был клонирован ваш репозиторий.
Таким образом, использование команды git fetch не приводит к слиянию полученных изменений с кодом, над которым вы работаете. Выполнение git pull позволяет не только извлекать данные с сервера, откуда был клонирован репозиторий, но и сразу сливать их с текущей версией проекта.
Отправка изменений в удаленный репозиторий
Все правки по проекту можно отправлять в удаленные репозитории с помощью команды git push <remote-name> <branch-name>. Чтобы отправить локальные изменения в удаленный репозиторий, используйте команду git push origin main. Команда сработает только в том случае, если есть права на запись и никто до вас не отправлял изменения. При этом, если кто-то уже выполнил команду push, ваши действия будут отклонены. Придется сначала получить и принять предложенные изменения и только тогда объединить их со своими.
Заключение
Удаленные репозитории — незаменимые инструменты для совместной работы над программным обеспечением, поскольку они значительно облегчают обмен данными и позволяют ускорить процесс разработки. А чтобы еще эффективнее управлять участниками проекта, можете использовать сервис CodeArts Repo, который входит в состав CodeArts — платформы полного цикла разработки ПО