foundation

Remote

Синхронизируйте локальную историю с общими серверами через fetch, pull, push и remote-tracking ветки.

Remote — именованный URL (или путь) другого репозитория; `origin` — условный стандарт. **Fetch** скачивает объекты и обновляет remote-tracking refs без смены текущей ветки. **Pull** — fetch плюс интеграция (merge или rebase по конфигу). **Push** публикует локальные коммиты.

					git remote -v
git fetch origin
git pull --rebase origin main
git push -u origin feature/login
				

Upstream tracking связывает локальные ветки с remote. Отказ push обычно значит, что remote ушёл вперёд — fetch, интеграция, затем push.

На интервью: origin vs upstream, tracking branches, fetch vs pull и зачем non-fast-forward push защищает общую историю.

Типовые ошибки: `git pull` без знания merge vs rebase по умолчанию; push в защищённые ветки; force-push поверх работы коллег.

Компромисс — удобство (`git pull`) против явного контроля (fetch + отдельно rebase/merge).

Чеклист:

  • Fetch перед сравнением с remote.
  • Понимайте настройку tracking branch.
  • Protected branches для общих integration refs.
  • Явная политика pull в команде.