Модуль 6: Работа с удалёнными репозиториями
Подключим удалённый репозиторий, научимся получать и отправлять изменения, разберём upstream‑связь и протоколы.
Удалённые — это не «сервер где‑то там», а набор правил синхронизации ссылок и объектов между вашим локальным графом истории и графом на хостинге. Понимание ссылок и политик push/pull делает работу предсказуемой и безопасной.
6.1 Клонирование репозитория
git clone https://github.com/user/repo.git
# или по SSH
git clone git@github.com:user/repo.git
                6.2 Просмотр и добавление удалённых
git remote -v
# добавить remote
git remote add origin git@github.com:user/repo.git
# изменить URL
git remote set-url origin git@github.com:user/repo.git
                Имя remote — это просто ярлык (обычно origin). Вы можете иметь несколько remotes для зеркалирования, форков или реплик, а также настраивать для каждого свой refspec.
6.3 Получение изменений: fetch и pull
git fetch— скачивает объекты и ссылки без изменения рабочих файловgit pull=fetch+merge(илиrebaseпри настройке)
git fetch origin
# обновить текущую ветку с ребейзом
git pull --rebase
                Выбирайте стратегию pull осознанно. В проектах с линейной историей предпочтителен --rebase; если важны явные точки слияния — оставляйте merge. Главное — договориться в команде и закрепить настройками.
6.4 Отправка изменений: push и upstream
# первый пуш и привязка upstream
git push -u origin feature/login
# обычный пуш после привязки
git push
                Привязка upstream упрощает ежедневную работу: короткие команды без параметров используют «запомненные» направления. Следите за политиками проекта: где разрешён force‑push, а где — нет.
6.5 Протоколы: SSH vs HTTPS
- HTTPS: проще стартовать, может требовать PAT/логин‑пароль
 - SSH: ключи, удобен для постоянной работы
 
6.6 Tracking‑ветки
Локальная ветка может «отслеживать» удалённую (upstream). Это включает краткие push/pull и подсказки статуса (на сколько коммитов вы опережаете/отстаёте).
6.7 Refspec: правила сопоставления ссылок
Refspec определяет, какие refs переносятся при fetch/push (например, +refs/heads/*:refs/remotes/origin/*). Знание refspec важно для зеркалирования и тонкой настройки синхронизации.
6.8 Политика push: push.default
Настройка управляет поведением git push без аргументов (simple, current, upstream, matching). Рекомендуется simple для безопасности.
6.9 Prune и обслуживание ссылок
git fetch --prune удаляет локальные ссылки на удалённые ветки, которые были удалены на сервере. Полезно для гигиены репозитория.
6.10 Shallow и Partial clone
Shallow clone (параметры глубины) ограничивает историю для экономии времени/трафика. Partial clone и фильтры (promisor) позволяют отложенную загрузку больших файлов.
6.11 URL‑схемы и credential helpers
Форматы URL (SSH/HTTPS), хранение и кэширование учётных данных через credential helpers (Windows/MacOS keychain, менеджеры). Безопасность секретов — ключевой аспект работы с удалёнными.