Ключевые концепции

Форк

В Git форк (англ. forkразвилка) — это копия репозитория, которая позволяет свободно экспериментировать с изменениями, не затрагивая оригинальный проект. Форк работает как мост между оригинальным репозиторием и твоей личной копией, позволяя отправлять pull request‑ы, чтобы предложить изменения в оригинальный проект.

Зачем нужны форки?

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

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

  2. Свободно экспериментировать: форки позволяют проверять новые идеи или возможности, не боясь сломать оригинальный проект. Можно вносить правки в свой форк, не влияя на основную кодовую базу.

  3. Сотрудничать с другими: форки помогают разработчикам работать вместе. Можно пригласить других людей поработать над своим форком, проверить изменения и добавить свои улучшения перед отправкой pull request‑а в оригинальный проект.

Многие популярные проекты с открытым исходным кодом были форкнуты и дальше развивались сообществом. Вот несколько известных примеров:

  • LibreOffice: форк OpenOffice, свободный офисный пакет с открытым исходным кодом, который активно разрабатывался и улучшался своим сообществом.

  • Jenkins: изначально форк инструмента непрерывной интеграции Hudson. Jenkins стал широко используемым сервером автоматизации с открытым исходным кодом.

  • Bitcoin Cash: форк криптовалюты Bitcoin, созданный для решения проблем с масштабированием и добавления новых возможностей.

Форки в рабочих процессах Git

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

  1. Найди репозиторий, в который хочется внести вклад, на платформе вроде GitHub.
  2. Сделай форк репозитория, чтобы получить свою копию.
  3. Склонируй свой форк на компьютер.
  4. Создай новую ветку для правок.
  5. Внеси изменения и зафиксируй их в эту ветку (закоммить).
  6. Отправь изменения в свой форк (запушь).
  7. Открой pull request из своего форка в оригинальный репозиторий, предлагая свои изменения.
  8. Мейнтейнеры оригинального репозитория проверят pull request, дадут обратную связь и решат, сливать ли эти изменения.

Форки и ветки. Важно понимать, что форки и ветки — это не одно и то же. Ветки используются внутри одного репозитория для управления разными линиями разработки, а форки создают отдельную копию всего репозитория целиком. Форки нужны для внешнего вклада и сотрудничества, а ветки — для внутренней разработки и организации внутри одного репозитория.