Форк
В Git форк (англ. fork — развилка) — это копия репозитория, которая позволяет свободно экспериментировать с изменениями, не затрагивая оригинальный проект. Форк работает как мост между оригинальным репозиторием и твоей личной копией, позволяя отправлять pull request‑ы, чтобы предложить изменения в оригинальный проект.
Зачем нужны форки?
Форки часто используются в разработке проектов с открытым исходным кодом для участия в проектах других людей или организаций. Сделав форк репозитория, ты получаешь собственную копию проекта, которую можно менять, не ломая исходный код. Это даёт возможность:
-
Предлагать изменения: если найдена ошибка или хочется добавить новую возможность в проект, можно форкнуть репозиторий, внести правки и отправить pull request в оригинальный репозиторий. После этого мейнтейнеры могут проверить эти изменения и решить, стоит ли их сливать в основной проект.
-
Свободно экспериментировать: форки позволяют проверять новые идеи или возможности, не боясь сломать оригинальный проект. Можно вносить правки в свой форк, не влияя на основную кодовую базу.
-
Сотрудничать с другими: форки помогают разработчикам работать вместе. Можно пригласить других людей поработать над своим форком, проверить изменения и добавить свои улучшения перед отправкой pull request‑а в оригинальный проект.
Многие популярные проекты с открытым исходным кодом были форкнуты и дальше развивались сообществом. Вот несколько известных примеров:
-
LibreOffice: форк OpenOffice, свободный офисный пакет с открытым исходным кодом, который активно разрабатывался и улучшался своим сообществом.
-
Jenkins: изначально форк инструмента непрерывной интеграции Hudson. Jenkins стал широко используемым сервером автоматизации с открытым исходным кодом.
-
Bitcoin Cash: форк криптовалюты Bitcoin, созданный для решения проблем с масштабированием и добавления новых возможностей.
Форки в рабочих процессах Git
Форки играют важнейшую роль в рабочих процессах Git, особенно в проектах с открытым исходным кодом. Типичный процесс с использованием форков выглядит так:
- Найди репозиторий, в который хочется внести вклад, на платформе вроде GitHub.
- Сделай форк репозитория, чтобы получить свою копию.
- Склонируй свой форк на компьютер.
- Создай новую ветку для правок.
- Внеси изменения и зафиксируй их в эту ветку (закоммить).
- Отправь изменения в свой форк (запушь).
- Открой pull request из своего форка в оригинальный репозиторий, предлагая свои изменения.
- Мейнтейнеры оригинального репозитория проверят pull request, дадут обратную связь и решат, сливать ли эти изменения.
Форки и ветки. Важно понимать, что форки и ветки — это не одно и то же. Ветки используются внутри одного репозитория для управления разными линиями разработки, а форки создают отдельную копию всего репозитория целиком. Форки нужны для внешнего вклада и сотрудничества, а ветки — для внутренней разработки и организации внутри одного репозитория.
.gitignoregit checkoutgit configgit taggit worktree