Удалённые репозитории
1Удалённые репозитории: remote и fetch2push и pull: синхронизация с remote3clone и fork: работа с чужими репозиториями← вы здесь
Урок 3~12 минут

clone и fork: работа с чужими репозиториями

Два способа получить чужой репозиторий: clone — скопировать локально, fork — скопировать на GitHub под свой аккаунт.

git clone — скопировать репозиторий

bash
git clone https://github.com/user/repo.git
git clone https://github.com/user/repo.git my-folder  # в конкретную папку
git clone git@github.com:user/repo.git                # через SSH

clone делает три вещи автоматически:

  1. Копирует весь репозиторий с историей
  2. Настраивает origin → URL источника
  3. Создаёт tracking branch mainorigin/main

Ничего настраивать вручную не нужно.

Глубина клонирования

По умолчанию clone скачивает всю историю. Для больших репозиториев это медленно:

bash
git clone --depth 1 https://github.com/user/repo.git  # только последний коммит
git clone --depth 10 URL                               # последние 10 коммитов

Shallow clone быстрее, но нельзя использовать git log в полную силу. Для CI/CD — нормально.

Fork — копия на GitHub

Fork нужен когда у тебя нет прав пушить в репозиторий:

  • Open source проекты
  • Репозитории других команд
  • Публичные библиотеки

Fork создаётся через кнопку «Fork» на GitHub — получаешь полную копию под своим аккаунтом, в которую можно пушить.

Попробуй в симуляции

Полный цикл с fork

bash
# 1. Fork на GitHub (кнопка Fork)
 
# 2. Clone своего fork
git clone https://github.com/ТВОЙ-АККАУНТ/repo.git
cd repo
 
# 3. Добавить upstream (оригинал)
git remote add upstream https://github.com/ОРИГИНАЛ/repo.git
 
# 4. Работать в отдельной ветке
git switch -c fix/typo-in-readme
 
# 5. Делать изменения и пушить в свой fork
git add .
git commit -m "fix: исправил опечатку"
git push origin fix/typo-in-readme
 
# 6. Создать Pull Request на GitHub
# fix/typo-in-readme (твой fork) → main (upstream)

Держать fork в актуальном состоянии

Пока ты работаешь, upstream продолжает развиваться. Периодически обновляй:

bash
git fetch upstream              # скачать из upstream
git switch main
git merge upstream/main         # обновить свой main
git push origin main            # обновить свой fork на GitHub

Или одной командой:

bash
git pull upstream main

SSH vs HTTPS

bash
# HTTPS — проще настроить, нужен токен при push
git clone https://github.com/user/repo.git
 
# SSH — удобнее при частом использовании
git clone git@github.com:user/repo.git

SSH ключ настраивается один раз в ~/.ssh/id_ed25519 + добавить публичный ключ в GitHub Settings → SSH keys. После этого push/pull без паролей.

Команды

bash
git clone URL                      # клонировать
git clone URL folder               # в указанную папку
git clone --depth 1 URL            # shallow clone
git remote add upstream URL        # добавить upstream
git fetch upstream                 # обновить из upstream
git merge upstream/main            # влить upstream в local

В следующем модуле — продвинутый Git: rebase, stash и как переписывать историю.

Clone = копия + автонастройка. Fork = копия на GitHub под твоим аккаунтом.
🍴
Fork и Cloneшаг 1 / 6
Upstream
original/my-project
f0e1d2cinit: первый коммит
4b5c6d7feat: главная страница
# Репозиторий проекта на GitHub
Upstream — оригинальный репозиторий проекта. Ты не можешь пушить туда напрямую (нет прав). Для работы нужен fork.
🎯
Миссия 1 из 4
Что git clone настраивает автоматически?