Форк
В Git форк (англ. fork означає розвилку) — це копія репозиторію, яка дозволяє вільно експериментувати зі змінами, не впливаючи на оригінальний проєкт. Форк працює як міст між оригінальним репозиторієм і твоєю особистою копією: через нього можна надсилати пулл реквести з пропозиціями змін до оригінального проєкту.
Навіщо потрібні форки?
Форки часто використовують у розробці з відкритим кодом, щоб долучатися до проєктів інших людей чи організацій. Зробивши форк репозиторію, ти отримуєш власну копію проєкту, яку можна змінювати, не чіпаючи оригінальну кодову базу. Це дозволяє:
-
Пропонувати зміни: якщо в проєкті знайшлася помилка або хочеться додати нову можливість, можна зробити форк репозиторію, внести зміни й надіслати пулл реквест до оригінального репозиторію. Мейнтейнери переглянуть твої зміни й вирішать, чи зливати їх в основний проєкт.
-
Вільно експериментувати: форки дозволяють випробовувати нові ідеї та можливості, не переймаючись, що оригінальний проєкт зламається. Зміни у твоєму форку не впливають на основну кодову базу.
-
Співпрацювати з іншими: форки спрощують спільну роботу розробників. Можна запросити інших людей попрацювати над твоїм форком, переглянути твої зміни й додати власні покращення, перш ніж надсилати пулл реквест до оригінального проєкту.
Чимало популярних проєктів із відкритим кодом мають форки, які спільнота розвинула далі. Ось кілька відомих прикладів:
-
LibreOffice: форк OpenOffice; вільний офісний пакет із відкритим кодом, який спільнота активно розвиває та вдосконалює.
-
Jenkins: спочатку це був форк інструмента неперервної інтеграції Hudson, а тепер — один із найпоширеніших серверів автоматизації з відкритим кодом.
-
Bitcoin Cash: форк криптовалюти Bitcoin, створений, щоб розв'язати проблеми масштабованості та реалізувати інші можливості.
Форки в робочих процесах Git
Форки відіграють важливу роль у робочих процесах Git, особливо в розробці з відкритим кодом. Типовий процес із форками може виглядати так:
- Знайди репозиторій, до якого хочеться долучитися, на платформі на кшталт GitHub.
- Зроби форк репозиторію, щоб отримати власну копію.
- Клонуй свій форк на комп'ютер.
- Створи нову гілку для своїх змін.
- Внеси правки й закоміть їх у своїй гілці.
- Відправ зміни у свій форк.
- Відкрий пулл реквест зі свого форку до оригінального репозиторію з пропозицією змін.
- Мейнтейнери оригінального репозиторію переглянуть пулл реквест, дадуть зауваження й вирішать, чи зливати твої зміни.
Форки vs. гілки. Важливо розуміти, що форк — це не гілка. Гілки живуть в одному репозиторії й допомагають вести різні лінії розробки, а форк є окремою копією всього репозиторію. Форки потрібні для зовнішніх внесків і співпраці, а гілки для внутрішньої розробки й організації роботи всередині репозиторію.
.gitignoregit checkoutgit configgit taggit worktree