📝 Python

GitHub Fork: вносим вклад в чужой проект 🍴

0
Author
04e5cc8b-58ac-4bdc-bdee-661bbb
📅
Published
06.05.2026
⏱️
Reading time
3 min
👁️
Views
20
🌱
Level
Beginner

Fork — это ваша личная копия чужого репозитория на GitHub. Ключевой инструмент Open Source разработки и способ внести вклад в проект без прав на него.

Fork vs Clone: в чём разница

Fork Clone
Где создаётся На GitHub (онлайн) На вашем компьютере (локально)
Связь с оригиналом GitHub помнит связь Независимая копия
PR в оригинал Можно создать Нельзя (нет связи)
Когда нужен Вы не member репозитория Вы member или работаете со своим

Обычная схема: Fork → Clone форка → работа → PR в оригинал.

Зачем нужен Fork

Когда вы не member репозитория

Хотите добавить функцию в популярную библиотеку? У вас нет прав пушить туда напрямую. Решение:

Оригинал (чужой)           Ваш форк
github.com/facebook/reactgithub.com/ваш-username/react
     нет прав                       полные права
                                         ↓
                                  Работаете локально
                                         ↓
                                  PR в оригинал

Экспериментировать без риска

Форкните любой проект и экспериментируйте как угодно — оригинал не пострадает.

Взять за основу

Вам нравится проект, хотите развивать его в своём направлении — форкните и ведите отдельно.

Как сделать Fork

На GitHub

  1. Откройте репозиторий который хотите форкнуть
  2. Нажмите кнопку Fork (вверху справа, рядом со Star и Watch)
  3. Выберите аккаунт куда форкнуть (обычно ваш личный)
  4. Нажмите Create fork

Через 5-10 секунд GitHub перенесёт вас на вашу копию:

github.com/оригинал/repogithub.com/ВЫ/repo
                              forked from оригинал/repo

Клонируйте именно форк

Это самая частая ошибка! Нужно клонировать ваш форк, а не оригинал.

В GitHub Desktop

  1. File → Clone Repository → вкладка GitHub.com
  2. В списке найдите репозиторий с пометкой Forked from…
  3. Выберите его → Clone

Как проверить что клонировали правильно

В GitHub Desktop: Repository → Repository Settings

✅ Правильно:
Primary remote (origin): https://github.com/ВАШ-USERNAME/repo-name

❌ Неправильно:
Primary remote (origin): https://github.com/ЧУЖОЙ-USERNAME/repo-name

Если origin указывает на оригинал — удалите и клонируйте заново.

Полный цикл: Fork → PR

1. Fork на GitHub

Нажали Fork → получили копию.

2. Clone форка

GitHub Desktop → Clone → выбрали форк → папка на компьютере.

3. Создайте ветку

Branch → New Branch → feature/guide-kazan

4. Работайте и коммитьте

Обычные коммиты — они идут в ваш форк.

5. Push в форк

Push origin — изменения уходят в ваш форк на GitHub.

6. Создайте PR в оригинал

На GitHub откройте ваш форк → нажмите Compare & pull request.

Критически важно: проверьте направление PR:

base repository: ОРИГИНАЛ/repo  ←  compare: ВАШ-USERNAME/repo
     ↑ куда                              ↑ откуда

Если base указывает на ваш форк — нажмите «compare across forks» и исправьте.

7. Заполните описание и создайте PR

PR появится в оригинальном репозитории, во вкладке Pull requests.

Синхронизация форка с оригиналом

Оригинальный проект продолжает развиваться пока вы работаете. Ваш форк «отстаёт».

Через GitHub (просто)

На странице вашего форка появится баннер:

«This branch is N commits behind original:main»

Нажмите Sync fork → Update branch.

В GitHub Desktop после синхронизации

После Sync fork на GitHub:
1. Переключитесь на main в GitHub Desktop
2. Fetch originPull origin
3. Локальный main теперь актуален

Обновите рабочую ветку

В GitHub Desktop: Branch → Update from default branch

Если ваша ветка изменила те же файлы что и оригинал — будет конфликт.
Разрешите его и продолжайте. Подробнее: Разрешение конфликтов.

Что происходит после merge вашего PR

Мейнтейнер принял ваш PR и смёрджил. Ваши изменения теперь в оригинальном проекте!

После этого:
1. Удалите ветку в форке (GitHub предложит)
2. Синхронизируйте форк: Sync fork на GitHub
3. В GitHub Desktop: Fetch + Pull на main

Удалить форк

Если форк больше не нужен:

Настройки вашего форка на GitHub → Settings → Danger Zone → Delete this repository.

Это удалит только ваш форк, оригинал не затронется.

Форк и Open Source: этикет

Перед работой

  • Прочитайте CONTRIBUTING.md — там правила проекта
  • Посмотрите открытые Issues — возможно задача уже есть
  • Если задачи нет — создайте Issue и напишите что берётесь

В PR

  • Заполните описание — мейнтейнеры получают десятки PR
  • Одна задача — один PR, не смешивайте изменения
  • Будьте готовы к правкам — первый PR редко принимают без замечаний

После отказа

Не расстраивайтесь если PR не приняли. Это нормально. Мейнтейнер может:
- Попросить изменить подход
- Объяснить что задача уже решается по-другому
- Отклонить по причинам не связанным с качеством кода

Поблагодарите за ответ и продолжайте.

Форк vs Collaborator

Fork Collaborator
Как получить доступ Кнопка Fork (сам) Владелец репо приглашает
Push в оригинал Нельзя, только через PR Можно напрямую
Для кого Внешние контрибьюторы Члены команды

Если вы работаете в команде над своим проектом — вы collaborator. Fork нужен только чтобы вносить вклад в чужие проекты.

Your reaction to the article

💬 Comments (0)

🔐 Sign in to leave a comment
🚪 Login
💭

No comments yet

Be the first to share your opinion about this article!

🔗 Similar

Similar articles

Continue learning with these materials

📝

Модуль datetime: работа с датами и временем

datetime — стандартный модуль Python для работы с датами и временем. Входит в стандартную библиотеку,...

📅 08.05.2026 👁️ 30
📝

.env файлы и переменные окружения: секреты вне ко…

Представь что ты написал программу с API-ключом прямо в коде и залил её на GitHub....

📅 08.05.2026 👁️ 35
📝

Виртуальные окружения в Python: зачем и как

Когда начинаешь второй Python-проект и ставишь pip install requests — эта библиотека устанавливается глобально, для...

📅 08.05.2026 👁️ 31

Did you like the article?

Subscribe to our updates and receive new articles first. Grow with PyLand!