Найкращі практики

Використовуй feature-гілки

Створюй нову гілку для кожної функції чи виправлення помилки замість того, щоб працювати прямо в гілці main.

Feature-гілка — це будь-яка гілка, створена для розробки конкретної функції або виправлення конкретної помилки.

Зливай feature-гілки в main тільки тоді, коли функція готова й протестована. Так робота залишається ізольованою, а змінами легше керувати. З таким підходом у гілці main завжди стабільний код, готовий до релізу.


Уяви, що треба реалізувати автентифікацію через Facebook у клієнтському застосунку.

Погано
  1. Ти одразу берешся за роботу й комітиш зміни прямо в гілку main. Під кінець дня в гілці вже кілька комітів, які частково реалізують функцію.
  2. Раптом телефонує бос: у наявній системі входу критична помилка, виправлення треба випустити негайно.
  3. Саме виправлення тривіальне, але тут з'ясовується: якщо зробити реліз зараз, у нього потрапить і наполовину готовий код входу через Facebook. От халепа!
У команді все ще гірше. Уяви, що всі працюють у гілці main: сирий, недороблений код різних розробників змішується докупи, і вже неможливо зрозуміти, що готове до релізу, а що ні. Звідси плутанина, зламані збірки та змарнований час.
Добре
  1. Ти створюєш нову гілку з назвою feature/facebook-login (або будь-якою іншою) і працюєш над функцією там. Зміни комітиш у цю гілку, а main залишається чистою та стабільною.
  2. Якщо прилітає несподіване виправлення, ти перемикаєшся на гілку main, створюєш ще одну гілку bugfix/login-issue і робиш виправлення в ній. Після тестування ця гілка з виправленням зливається в main. Реліз виходить, усі задоволені.
  3. Ти повертаєшся у свою гілку feature/facebook-login, робиш git rebase, щоб підтягнути останні зміни з main у свою feature-гілку, і продовжуєш працювати. Коли функція готова, зливаєш її назад у main.