Найкращі практики
Використовуй feature-гілки
Створюй нову гілку для кожної функції чи виправлення помилки замість того, щоб працювати прямо в гілці main.
Feature-гілка — це будь-яка гілка, створена для розробки конкретної функції або виправлення конкретної помилки.
Зливай feature-гілки в main тільки тоді, коли функція готова й протестована. Так робота залишається ізольованою, а змінами легше керувати. З таким підходом у гілці main завжди стабільний код, готовий до релізу.
Уяви, що треба реалізувати автентифікацію через Facebook у клієнтському застосунку.
Погано
- Ти одразу берешся за роботу й комітиш зміни прямо в гілку
main. Під кінець дня в гілці вже кілька комітів, які частково реалізують функцію. - Раптом телефонує бос: у наявній системі входу критична помилка, виправлення треба випустити негайно.
- Саме виправлення тривіальне, але тут з'ясовується: якщо зробити реліз зараз, у нього потрапить і наполовину готовий код входу через Facebook. От халепа!
У команді все ще гірше. Уяви, що всі працюють у гілці
main: сирий, недороблений код різних розробників змішується докупи, і вже неможливо зрозуміти, що готове до релізу, а що ні. Звідси плутанина, зламані збірки та змарнований час. Добре
- Ти створюєш нову гілку з назвою
feature/facebook-login(або будь-якою іншою) і працюєш над функцією там. Зміни комітиш у цю гілку, аmainзалишається чистою та стабільною. - Якщо прилітає несподіване виправлення, ти перемикаєшся на гілку
main, створюєш ще одну гілкуbugfix/login-issueі робиш виправлення в ній. Після тестування ця гілка з виправленням зливається вmain. Реліз виходить, усі задоволені. - Ти повертаєшся у свою гілку
feature/facebook-login, робишgit rebase, щоб підтягнути останні зміни зmainу свою feature-гілку, і продовжуєш працювати. Коли функція готова, зливаєш її назад уmain.
Ключові поняття
Найкращі практики
Команди Git
Основи
git initgit addgit commitgit helpГілки
git branchgit switchgit mergegit rebaseСтатус/історія
git statusgit loggit diffgit showgit blamegit reflogСкасування
git resetgit restoregit revertgit cleangit stashВіддалені репозиторії
git clonegit fetchgit pullgit pushgit remoteІнше
Файл .gitignoregit checkoutgit configgit taggit worktreeЧудова робота!
Усі статті Gitopedia відкрито!