Всім привіт. У цьому уроці ми розглянемо як автоматизувати workflow, який ми з вами розібрали в минулому уроці. Руками створювати фичи, хотфікси і релізи кожен день досить довго, а дії завжди одні й ті ж. Тому існує багато всяких можливостей зробити це зручнішим.
У цьому уроці ми з вами розберемо що таке gitflow. Для установки gitflow на мак потрібно всього лише написати
Так як він у мене вже встановлено, то я його встановлювати не буду. Про установку на інших операционках можна почитати в Офіційний ріпі. У розділі Installation instruction написано як встановлювати його на все операційки.
Тепер нам потрібно форматувати gitflow в нашому репозиторії.
Для цього напишемо
І нам задають тут питання як ми хочемо назвати майстер, Девелоп, хотфиксов і реліз гілки. Можна сміливо натискати enter у відповідь на всі питання. Питання закінчилися і тепер у нас инициализирован gitflow.
Тепер давайте створимо нову фічу, як ми робили в минулому уроці.
Як ми бачимо відразу відбулося дуже багато. У нас створилася нова гілка feature / implement-registration. Нам не потрібно вказувати приставку feature, так як вона дозволяє автоматично визначити. І воно нам перекинуло на створення гілку. І коли ми закінчимо працювати з цією гілкою нам потрібно написати git flow feature finish.
Тепер Зробити якісь зміни. Створимо файл register.js і додамо туди якусь функцію.
Тепер закоммітім наші зміни.
І пишемо, що хочемо закінчити фичу
Ця команда автоматично мерджіт фичу в develop, видаляє стару гілку і переключається на develop. І все це в одну команду.
Якщо ми подивимося git log, то ми побачимо, що наш коментар щодо цього додався.
Тепер давайте створимо реліз, як ми робили в минулому уроці.
Воно нам говорить, що у нас є гілка релізу 1.0, яка не була нормально завершена. Це тому, що ми її ніяк не закрили і не видалили і вона у нас висить з минулого уроку.
Якщо ми напишемо git branch, то побачимо, що у нас висить гілка release / 1.0. Давайте її просто видалимо
Тепер якщо ми спробуємо стартанути реліз, має бути все нормально. Як ми бачимо, нас перекинуло на гілку release / 1.1. І воно нам говорить, зробіть необхідні зміни до релізу і коли закінчите натисніть finish.
І так як нам не потрібно робити ніяких змін пишемо
Що зробила команда finish в цей раз? Вона смерджіла реліз в майстер і develop, поставив тег 1.1 і видалила гілку. Тобто все, що ми робили в кілька команд в минулому уроці вона зробила в одну.
Якщо ми хочемо зробити хотфиксов для продакшена то ми пишемо
Робимо наш хотфиксов. Наприклад видаляємо прогалини в файлі register.js. Робимо Комміт і пишемо finish
Це мерджіт гілку одночасно в майстер і Девелоп і видаляє гілку.
І тепер трохи про те, що таке теги. Якщо ми напишемо команду
Якщо ми зараз напишемо git tag, то побачимо, що у нас додався тег 1.2.
Це створило нам мітку точно на той Комміт, який був на гілці в той момент, коли ми написали команду. Тепер якщо ми напишемо
Це створить нам нову гілку з тега. І візьме останнім коммітов, той, який був останнім, коли ми написали цю команду. Тепер абсолютно завжди цей тег 1.2 буде існувати і ми завжди можемо створити нову гілку з цього тега.
І остання команда, яка може бути корисна. За замовчуванням, якщо ви напишете git push, воно пушіт тільки гілки і не пушіт теги. Щоб запущено теги напишемо
Тепер ми запущено наші теги і бачимо повідомлення, що у нас склалося 3 нових тега, нам вони доступні на гітхабе, їх можна хилити разом з репозиторієм і їх можуть використовувати інші люди.