Статьи

Небольшой курс по Git — от первых команд до командной работы и выката в прод

Удаленные репозитории

Страница 3 из 8 · 2026-10-25 · 2 мин чтения

Что это

Удаленный репозиторий — копия проекта на сервере (GitHub, GitLab, Bitbucket, свой сервер). Через него команда обменивается коммитами.

Локальный репозиторий полноценный: коммитить, смотреть историю и переключать ветки можно без сети.

SSH-ключ

Чтобы не вводить пароль, настройте ключ:

ssh-keygen -t ed25519 -C "me@example.com"cat ~/.ssh/id_ed25519.pub

Скопируйте содержимое публичного ключа в GitHub: Settings → SSH and GPG keys → New SSH key. Проверка:

ssh -T git@github.com

Приватный ключ id_ed25519 никому не передавайте. Альтернатива — HTTPS с токеном доступа (Personal Access Token) вместо пароля.

Получение репозитория

git clone git@github.com:user/project.gitgit clone git@github.com:user/project.git my-foldergit clone --depth 1 git@github.com:user/project.git

--depth 1 скачивает только последний коммит, без истории. Подходит для CI и больших проектов.

Подключение существующего проекта

git remote add origin git@github.com:user/project.gitgit remote -vgit push -u origin main

origin — стандартное имя основного удаленного репозитория. Флаг -u связывает локальную ветку с удаленной, дальше хватит просто git push.

Основные команды

КомандаДействие
git fetchскачать новые коммиты, ничего не меняя в рабочей папке
git pullfetch и слияние в текущую ветку
git pushотправить коммиты на сервер
git push -u origin веткаотправить новую ветку и связать с удаленной
git push origin --delete веткаудалить удаленную ветку
git remote -vсписок удаленных репозиториев
git fetch --pruneубрать ссылки на удаленные ветки, которых уже нет
git fetchgit log HEAD..origin/main --onelinegit pull --rebasegit push

git pull --rebase переносит ваши локальные коммиты поверх чужих и не создает лишних merge-коммитов. Включить по умолчанию:

git config --global pull.rebase true

Если push отклонен

! [rejected] main -> main (fetch first)

На сервере есть коммиты, которых нет у вас:

git pull --rebasegit push

Force push

Перезапись истории на сервере:

git push --force-with-lease
  • --force-with-lease безопаснее --force: откажет, если кто-то успел запушить свое;
  • используйте только в своих ветках, например после rebase;
  • в main и общие ветки никогда не форсите.

Форки и upstream

Чтобы внести вклад в чужой проект:

  1. Нажмите Fork на GitHub.
  2. Склонируйте свой форк.
  3. Добавьте оригинал как upstream:
git remote add upstream git@github.com:original/project.gitgit fetch upstreamgit switch maingit merge upstream/maingit push origin main
  1. Работайте в ветке и откройте Pull Request в оригинальный репозиторий.

Отслеживание веток

git branch -vvgit switch feature/xgit branch --set-upstream-to=origin/feature/x

Если ветка есть на сервере, но нет локально, git switch feature/x создаст локальную автоматически.