Работа с удалёнными репозиториями

4. Работа с удалёнными репозиториями #

4.1. Настройка удалённого репозитория #

Удалённый репозиторий — это версия вашего репозитория, размещённая на сервере (например, GitHub, GitLab, Bitbucket).
Настройка удалённого репозитория позволяет синхронизировать изменения между локальной и удалённой копиями.

Добавление удалённого репозитория #

Чтобы связать локальный репозиторий с удалённым, используйте команду:

git remote add имя_удалённого_репозитория URL

Пример:

git remote add origin https://github.com/username/repo.git
  • origin — стандартное имя для основного удалённого репозитория (вы можете использовать любое имя).
  • URL — адрес удалённого репозитория.

Просмотр списка удалённых репозиториев #

git remote -v

Удаление удалённого репозитория #

Если необходимо удалить привязку:

git remote remove имя_удалённого_репозитория

4.2. Команды для взаимодействия с удалённым репозиторием #

git fetch #

Загружает обновления из удалённого репозитория (коммиты, ветки, теги), но не сливает их с локальными изменениями.

git fetch имя_удалённого_репозитория

Пример:

git fetch origin

git pull #

Загружает изменения из удалённого репозитория и автоматически сливает их с текущей веткой. Это сочетание git fetch и git merge.

git pull имя_удалённого_репозитория ветка

Пример:

git pull origin main

git push #

Отправляет изменения из локального репозитория в удалённый.

git push имя_удалённого_репозитория ветка

Пример:

git push origin main

Удаление ветки в удалённом репозитории #

Для удаления ветки в удалённом репозитории:

git push имя_удалённого_репозитория --delete имя_ветки

Пример:

git push origin --delete feature/login

4.3. Работа с несколькими удалёнными репозиториями #

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

Добавление второго удалённого репозитория #

git remote add имя_удалённого_репозитория_2 URL

Пример:

git remote add backup https://gitlab.com/username/repo.git

Отправка изменений в определённый репозиторий #

git push имя_удалённого_репозитория ветка

Пример:

git push backup main

Получение обновлений из определённого репозитория #

git fetch имя_удалённого_репозитория

Синхронизация между удалёнными репозиториями #

Вы можете перетаскивать изменения из одного удалённого репозитория в другой:

git fetch origin
git push backup main

4.4. Аутентификация и доступ: HTTPS, SSH #

Для доступа к удалённым репозиториям Git поддерживает два основных метода: HTTPS и SSH.

1. HTTPS #

  • Использует стандартное соединение HTTP(S).
  • Удобен для быстрого начала работы.
  • Каждый раз при выполнении git push или git pull может потребовать имя пользователя и пароль.
Настройка HTTPS с кэшем учётных данных: #

Чтобы избежать постоянного ввода пароля:

git config --global credential.helper store

ИЛИ, если используется Windows:

git config --global credential.helper manager

2. SSH #

  • Использует ключи SSH для аутентификации.
  • Рекомендуется для частых взаимодействий, поскольку не требует ввода пароля.
Настройка SSH: #
  1. Создайте SSH-ключ:

    ssh-keygen -t rsa -b 4096 -C "ваш[email protected]"
    

    По умолчанию ключ сохраняется в ~/.ssh/id_rsa.

  2. Добавьте публичный ключ на платформу (например, GitHub):
    Скопируйте содержимое файла ~/.ssh/id_rsa.pub:

    cat ~/.ssh/id_rsa.pub
    

    Вставьте его в настройки SSH на GitHub/GitLab/Bitbucket.

  3. Проверьте подключение:

    Если настройка успешна, вы увидите приветственное сообщение.

Использование SSH вместо HTTPS: #

Обновите URL удалённого репозитория:

git remote set-url origin [email protected]:username/repo.git

Итоги #

Работа с удалёнными репозиториями является важной частью командной разработки. Знание команд git fetch, git pull и git push, а также настройки аутентификации помогут вам эффективно синхронизировать локальные и удалённые изменения.