linuxlab.io
Учебники▾
  • Линукс и сети
    Файловая система, процессы, TCP/IP, BGP и OSPF
    →
  • Terraform и IaC
    HCL, state, plan/apply на sandbox LocalStack
    →
  • Git и GitHub
    Объектная модель, plumbing, ветвление, GitHub Actions
    →
Все учебники →
ЦеныО платформеВойтиСоздать аккаунт
/
Intro
Lessons
Footer
linuxlab-УчебникиЦеныО платформеКонфиденциальность и куки
Copyright © 2026 LinuxLab. Все права защищены.
linuxlab.io
Учебники▾
  • Линукс и сети
    Файловая система, процессы, TCP/IP, BGP и OSPF
    →
  • Terraform и IaC
    HCL, state, plan/apply на sandbox LocalStack
    →
  • Git и GitHub
    Объектная модель, plumbing, ветвление, GitHub Actions
    →
Все учебники →
ЦеныО платформеВойтиСоздать аккаунт
/
  • Введение
  • Главы
  • How it works
  • Уроки
  • База знаний
  • Собеседование
home/git/kb/Удалённые репозитории

kb/remote

Удалённые репозитории: push, pull, fetch, remotes

Origin, upstream, remote add. Разница между fetch и pull, почему `git push --force-with-lease` безопаснее `--force`. Tracking branches, SSH-ключи, GPG-подпись коммитов и тегов.

  • force-pushForce push

    `git push --force` затирает удалённую историю своей. `git push --force-with-lease` делает то же, но отказывает, если кто-то успел запушить туда после твоего последнего fetch. Используй всегда `--force-with-lease`.

  • clonegit clone

    Создаёт локальную копию удалённого репозитория. Под капотом - `init` + добавление origin + `fetch` всей истории + `checkout` основной ветки. Самая первая команда при работе с чужим проектом.

  • fetchgit fetch

    Скачивает обновления с remote, но **не трогает** локальные ветки. Обновляет только refs/remotes/origin/. Безопасная команда: после fetch ты видишь, что пришло, и решаешь, что с этим делать.

  • pullgit pull

    Затаскивает обновления с удалённого репозитория и сразу сливает с текущей веткой. По сути - `git fetch` + `git merge` (или + `git rebase` с `--rebase`). Самая запутанная команда для новичков.

  • pushgit push

    Отправляет локальные коммиты в удалённый репозиторий и обновляет там ветку. Если remote получил коммиты от кого-то другого после твоего последнего pull - push откажется, пока не синхронизируешься.

  • remote-cmdgit remote

    Управляет списком URL-ов, с которыми связан репозиторий. По умолчанию после `clone` один remote по имени `origin`. Можно добавить второй (`upstream` для fork-flow), удалить, переименовать.

  • tracking-branchTracking branch

    Связь между локальной веткой и удалённой: «эта моя ветка следит за этой удалённой». Включает поведение `git pull`/`push` без аргументов и `git status` сообщения вида «ahead 3, behind 2».

  • upstream-vs-originupstream vs origin

    Два общепринятых имени remote. `origin` - куда клонировал (обычно свой fork). `upstream` - «настоящий» проект, у которого ты сделал fork. Это просто конвенция: ничего магического, оба имени можно переименовать.

Footer
linuxlab-
Copyright © 2026 LinuxLab. Все права защищены.
Учебники
Цены
О платформе
Конфиденциальность и куки