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 в команде.