📝 Python

Синхронизация форка с оригинальным репозиторием 🔄

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

Когда вы форкнули проект, ваша копия «замирает» в моменте форка. Оригинальный проект продолжает развиваться — в него мёрджат PR других разработчиков. Чтобы работать с актуальным кодом, нужно периодически синхронизировать форк.

Почему форк отстаёт

Момент форка:   original: A──B──C
                your fork: A──B──C  (копия)

После работы:   original: A──B──C──D──E──F  (добавили D, E, F)
                your fork: A──B──C──X──Y     (вы добавили X, Y)

Ваш форк не знает о коммитах D, E, F пока вы его не синхронизируете.

Когда нужна синхронизация

  • Перед началом новой задачи — чтобы работать с актуальным кодом
  • Когда PR показывает конфликт — оригинал изменился пока вы работали
  • Периодически — если проект активно развивается

Способ 1: Кнопка Sync fork на GitHub (самый простой)

Шаг 1: Откройте свой форк на GitHub

URL: github.com/ВАШ-USERNAME/имя-репозитория

Шаг 2: Убедитесь что вы на ветке main

Переключитесь на main если нужно.

Шаг 3: Найдите кнопку Sync fork

Под кнопкой Code вы увидите статус:

«This branch is N commits behind original:main»

Рядом — кнопка Sync fork.

Шаг 4: Обновите ветку

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

GitHub автоматически получит новые коммиты из оригинала и добавит в ваш форк.

Что если кнопки нет?

Кнопка Sync fork появляется только если форк отстаёт от оригинала. Если кнопки нет — форк актуален, ничего делать не нужно.

Способ 2: GitHub Desktop

После того как синхронизировали форк через GitHub (шаги выше), нужно обновить локальную копию:

  1. Переключитесь на ветку main в GitHub Desktop
  2. Нажмите Fetch origin
  3. Нажмите Pull origin

Теперь локальный main совпадает с оригиналом.

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

После синхронизации main нужно обновить и рабочую ветку:

В GitHub Desktop:
1. Переключитесь на вашу ветку (например feature/guide-kazan)
2. Branch → Update from default branch (или «Merge into current branch» → выберите main)

Если ваши изменения затрагивают те же файлы что и новые коммиты из оригинала — возникнет конфликт. Разрешите его: Разрешение конфликтов.

Синхронизация через командную строку

Для тех кто работает с консолью:

# Один раз: добавьте оригинальный репо как upstream
git remote add upstream https://github.com/ОРИГИНАЛ-АВТОР/repo-name.git

# Каждый раз при синхронизации:
git fetch upstream          # получить изменения из оригинала
git checkout main           # переключиться на main
git merge upstream/main     # влить изменения
git push origin main        # обновить свой форк на GitHub

Синхронизация и конфликт в PR

Самый частый сценарий:

  1. Вы форкнули и начали работу
  2. Другой PR смёрджили в оригинал — изменили тот же файл что и вы
  3. Ваш PR теперь показывает конфликт

Как исправить:

1. Sync fork на GitHub (обновить main в форке)
2. Fetch + Pull в GitHub Desktop (обновить локальный main)
3. Branch → Update from default branch (обновить вашу ветку)
4. Разрешить конфликт в редакторе
5. Commit + Push
6. PR автоматически обновится — конфликт исчезнет

Почему не нужно создавать новый PR

После синхронизации и разрешения конфликта ваш существующий PR автоматически обновляется. Создавать новый PR не нужно.

Регулярная синхронизация

Если вы работаете над долгой задачей в активном проекте:

Начало работы: синхронизируйте форк
Каждые 2-3 дня: синхронизируйте форк и обновляйте ветку
Перед PR: убедитесь что форк актуален

Это сократит количество конфликтов и упростит их разрешение.

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!