Fork

Коротко

Собственная копия чужого репозитория на сервере (GitHub, GitLab и других), в которой можно вести правки без прав на запись в исходный проект.

Что такое «Fork»

Форк решает простую проблему открытой разработки: в чужой проект нельзя напрямую отправлять изменения, а предложить исправление хочется. Платформа копирует репозиторий в ваш аккаунт, вы работаете в этой копии как в своей и затем просите автора забрать правки через pull request. Платформа помнит, откуда сделана копия, поэтому запрос сразу нацелен на исходный проект.

У слова есть и второе, более широкое значение — отделение целого проекта с самостоятельным развитием. Так появились MariaDB из MySQL, LibreOffice из OpenOffice.org, ClassicPress из WordPress. Это возможно благодаря лицензиям открытого ПО, которые разрешают брать код и развивать его иначе.

Форк и клон — не одно и то же

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

Как держать форк в актуальном виде

Исходный проект продолжает развиваться, и копия отстаёт. Чтобы подтягивать свежие изменения, оригинал подключают вторым удалённым репозиторием под именем upstream:

git remote add upstream https://github.com/author/project.git
git fetch upstream
git switch main
git merge upstream/main
git push origin main

На GitHub для того же есть кнопка синхронизации форка в веб-интерфейсе, но в командной строке хорошо видно, что именно происходит.

Когда форк — плохая идея

Форк популярного плагина или темы WordPress ради одной правки быстро превращается в обузу: исходник выпускает обновления безопасности, а в копию их приходится переносить вручную. Если доработку можно сделать через хуки или дочернюю тему, это почти всегда надёжнее, чем вести собственную версию чужого кода.

Обновлено:

Все термины раздела «Git»

Что будем искать? Например,Продвижение