Ключові поняття

Форк

В Git форк (англ. fork означає розвилку) — це копія репозиторію, яка дозволяє вільно експериментувати зі змінами, не впливаючи на оригінальний проєкт. Форк працює як міст між оригінальним репозиторієм і твоєю особистою копією: через нього можна надсилати пулл реквести з пропозиціями змін до оригінального проєкту.

Навіщо потрібні форки?

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

  1. Пропонувати зміни: якщо в проєкті знайшлася помилка або хочеться додати нову можливість, можна зробити форк репозиторію, внести зміни й надіслати пулл реквест до оригінального репозиторію. Мейнтейнери переглянуть твої зміни й вирішать, чи зливати їх в основний проєкт.

  2. Вільно експериментувати: форки дозволяють випробовувати нові ідеї та можливості, не переймаючись, що оригінальний проєкт зламається. Зміни у твоєму форку не впливають на основну кодову базу.

  3. Співпрацювати з іншими: форки спрощують спільну роботу розробників. Можна запросити інших людей попрацювати над твоїм форком, переглянути твої зміни й додати власні покращення, перш ніж надсилати пулл реквест до оригінального проєкту.

Чимало популярних проєктів із відкритим кодом мають форки, які спільнота розвинула далі. Ось кілька відомих прикладів:

  • LibreOffice: форк OpenOffice; вільний офісний пакет із відкритим кодом, який спільнота активно розвиває та вдосконалює.

  • Jenkins: спочатку це був форк інструмента неперервної інтеграції Hudson, а тепер — один із найпоширеніших серверів автоматизації з відкритим кодом.

  • Bitcoin Cash: форк криптовалюти Bitcoin, створений, щоб розв'язати проблеми масштабованості та реалізувати інші можливості.

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

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

  1. Знайди репозиторій, до якого хочеться долучитися, на платформі на кшталт GitHub.
  2. Зроби форк репозиторію, щоб отримати власну копію.
  3. Клонуй свій форк на комп'ютер.
  4. Створи нову гілку для своїх змін.
  5. Внеси правки й закоміть їх у своїй гілці.
  6. Відправ зміни у свій форк.
  7. Відкрий пулл реквест зі свого форку до оригінального репозиторію з пропозицією змін.
  8. Мейнтейнери оригінального репозиторію переглянуть пулл реквест, дадуть зауваження й вирішать, чи зливати твої зміни.

Форки vs. гілки. Важливо розуміти, що форк — це не гілка. Гілки живуть в одному репозиторії й допомагають вести різні лінії розробки, а форк є окремою копією всього репозиторію. Форки потрібні для зовнішніх внесків і співпраці, а гілки для внутрішньої розробки й організації роботи всередині репозиторію.