Гілки: паралельні версії проєкту
Що таке гілка, чому робота йде в короткоживучих гілках поруч із main і як читати гілки на GitHub: перемикач гілок, ahead і behind, застарілі гілки та графи з кількома доріжками.
Урок 4 з 15~32 хв навчанняЗ них ~19 хв на запитання та завдання
Зміст1 із 65 кроків
Ви
Daniel
feature/checkout-redesign, і весь цей тиждень робочий сайт лишався таким, як був.Ви
Daniel
main. Отоді кнопка й зламалася, а за десять хвилин ми відкотили мердж. У подробицях зізнаюся наприкінці уроку.Alex Tutor
main цього не помічає.main теж гілка: основна гілка, або гілка за замовчуванням (default branch). GitHub відкриває її першою, і саме її в Котокормі викладають на сайт. У старіших репозиторіях вона часто називається master.Alex Tutor
Питання 1
Daniel додає новий коміт у fix/checkout-button. Клієнти на сайті Котокорму одразу бачать цю зміну.
Ви
Alex Tutor
fix/checkout-button від останнього коміту в main.Alex Tutor
e7c3b19Add summer promo bannerf02a6d4Update FAQ answers3a9d1c4Reproduce bug in a test8be2f70Add cat treats bundlemainb7e4a05Re-enable button after cart editsfix/checkout-button
Граф комітів, від найстарішого: main і гілка fix/checkout-button 1. коміт e7c3b19 у main "Add summer promo banner" 2. коміт f02a6d4 у main "Update FAQ answers" 3. гілка fix/checkout-button починається від коміту f02a6d4 4. коміт 3a9d1c4 у fix/checkout-button "Reproduce bug in a test" 5. коміт 8be2f70 у main "Add cat treats bundle" 6. коміт b7e4a05 у fix/checkout-button "Re-enable button after cart edits" (виділено)
Ви
main. Права відгалужується від «Update FAQ answers» і має два власні коміти.Alex Tutor
main не чекала: поки Daniel працював, туди потрапив «Add cat treats bundle». Тепер дві лінії відрізняються в обидва боки.Alex Tutor
Питання 2
Ти перемикаєш гілку на feature/gift-wrap. Які коміти є в історії цієї гілки? Познач усе, що підходить.
m1Add reviews blockm2Fix rating starsg1Add gift wrap optionm3Update footer linksmaing2Add gift wrap pricefeature/gift-wrap
Граф комітів, від найстарішого: main і feature/gift-wrap 1. коміт m1 у main "Add reviews block" 2. коміт m2 у main "Fix rating stars" 3. гілка feature/gift-wrap починається від коміту m2 4. коміт g1 у feature/gift-wrap "Add gift wrap option" 5. коміт m3 у main "Update footer links" 6. коміт g2 у feature/gift-wrap "Add gift wrap price"
Alex Tutor
main. Він показує список гілок, а поле пошуку фільтрує їх за назвою.Ви
fix/checkout-button. Список файлів начебто той самий, але на смужці останнього коміту тепер «Re-enable button after cart edits».Alex Tutor
/tree/fix/checkout-button. Перемикання змінює лише те, що ти бачиш. Воно нічого не редагує.Daniel
Alex Tutor
main».Alex Tutor
Питання 3
Колега надсилає тобі посилання на config/prices.json. В адресі є /blob/feature/subscription/, а у файлі написано, що доставка коштує 69 грн. Який висновок правильний?
Ви
Alex Tutor
main: два коміти від Daniel. Behind рахує коміти, які є в main, але яких немає в гілці: той самий набір котячих ласощів.Ви
main пішла вперед без цієї гілки.Alex Tutor
Daniel
main у свою гілку. Але що довше чекаю, то більше накопичується сюрпризів.Alex Tutor
Питання 4
Що GitHub покаже для feature/subscription порівняно з main?
c1Add blog sectionc2Add author pagess1Add subscription plansc3Fix blog datess2Add subscription forms3Add plan pricesfeature/subscriptionc4Speed up imagesmain
Граф комітів, від найстарішого: main і feature/subscription 1. коміт c1 у main "Add blog section" 2. коміт c2 у main "Add author pages" 3. гілка feature/subscription починається від коміту c2 4. коміт s1 у feature/subscription "Add subscription plans" 5. коміт c3 у main "Fix blog dates" 6. коміт s2 у feature/subscription "Add subscription form" 7. коміт s3 у feature/subscription "Add plan prices" 8. коміт c4 у main "Speed up images"
Alex Tutor
View all branches у самому перемикачі, і відкриється сторінка гілок: кожна гілка з датою останнього оновлення, числами behind і ahead та своїм pull request.Active гілки зі свіжими комітами. У Stale, тобто застарілих, ті, де комітів не було приблизно три місяці.Alex Tutor
main
Основна гілка. Оновлено вчора
feature/free-delivery-1000
Оновлено 3 години тому · 0 behind, 3 ahead
fix/checkout-button
Оновлено вчора · 1 behind, 2 ahead
content/delivery-copy
Оновлено минулого тижня · 2 behind, 1 ahead
feature/loyalty-points
Оновлено 5 місяців тому · 86 behind, 12 ahead
Ви
content/delivery-copy це ж гілка від Emma! Отже, наша контент-маркетологиня таки перенесла свої тексти в репозиторій.Alex Tutor
Ви
feature/loyalty-points: дванадцять комітів ahead, 86 behind, і п'ять місяців ніхто не чіпав. Це покинутий проєкт?Daniel
main надто змінилася.Alex Tutor
Alex Tutor
Питання 5
Які з цих гілок GitHub покаже у вкладці Stale? Познач усе, що підходить.
feature/wishlist
Останній коміт 4 місяці тому
fix/cart-rounding
Останній коміт 2 дні тому
content/spring-sale
Останній коміт 2 місяці тому
docs/returns-policy
Останній коміт 7 місяців тому
feature/subscription
Останній коміт 3 тижні тому
Ви
fix/, feature/, content/. Це правило GitHub?Daniel
131-checkout-button, або ім'я автора, як-от daniel/checkout-button. І назви, які GitHub генерує сам, наприклад revert-97-feature/checkout-redesign.Ви
Daniel
Revert.Alex Tutor
hotfix/ і release/ належать до git flow, воркфлоу, який ми порівняємо з нашим у четвертому модулі.Alex Tutor
Питання 6
Зістав кожну назву гілки з тим, що вона найімовірніше означає.
Торкніться відповіді, а потім рядка, до якого вона належить. Можна й перетягувати.
fix/cart-total-roundingfeature/gift-cardsdocs/setup-guide142-delivery-maprevert-97-feature/checkout-redesign
Відповіді, які ще треба розмістити
Alex Tutor
main, зробити кілька комітів, відкрити pull request, змерджити, видалити.Ви
Alex Tutor
main. Назва гілки була лише вказівником, і свою задачу вона виконала.Delete branch. А якщо гілка комусь знову знадобиться, на тій самій сторінці є Restore branch.Daniel
Alex Tutor
Питання 7
Pull request змерджено, і Daniel натискає Delete branch. Що станеться з виправленням із коміту f1?
a1Add contacts pagef1Fix broken footer linksfix/footer-linksa2Update cat food photosa3Merge pull request #88main
Граф комітів, від найстарішого: fix/footer-links після мерджу 1. коміт a1 у main "Add contacts page" 2. гілка fix/footer-links починається від коміту a1 3. коміт f1 у fix/footer-links "Fix broken footer links" 4. коміт a2 у main "Update cat food photos" 5. мердж-коміт a3: fix/footer-links змерджено в main "Merge pull request #88"
Alex Tutor
main, праворуч його гілка з редизайном.Alex Tutor
4d2a8e1Add order tracking link61b9f3cNew checkout button stylesd18e6a0Add cookie notice bar (#95)main92c4b1fMove button to sticky footer0a7f5e3Update button textsfeature/checkout-redesign
Граф комітів, від найстарішого: Березень: редизайн кнопки перед мерджем 1. коміт 4d2a8e1 у main "Add order tracking link" 2. гілка feature/checkout-redesign починається від коміту 4d2a8e1 3. коміт 61b9f3c у feature/checkout-redesign "New checkout button styles" 4. коміт d18e6a0 у main "Add cookie notice bar (#95)" (виділено) 5. коміт 92c4b1f у feature/checkout-redesign "Move button to sticky footer" 6. коміт 0a7f5e3 у feature/checkout-redesign "Update button texts"
Daniel
main змерджили панель із повідомленням про cookie від колеги. Моя гілка відставала на один коміт, а я й не глянув.Ви
Daniel
main уперше опинилося і те, і те. На телефонах панель лягла просто на мою кнопку, і натиснути її не міг ніхто. Звідси й відкат.Alex Tutor
Daniel
main. Відтоді працює.Alex Tutor
Питання 8
Які твердження про цей граф правдиві? Познач усе, що підходить.
e7c3b19Add summer promo bannerf02a6d4Update FAQ answerse19c3b7Rewrite delivery page copycontent/delivery-copy3a9d1c4Reproduce bug in a test8be2f70Add cat treats bundlemainb7e4a05Re-enable button after cart editsfix/checkout-button
Граф комітів, від найстарішого: Три лінії роботи в catchow/website 1. коміт e7c3b19 у main "Add summer promo banner" 2. гілка content/delivery-copy починається від коміту e7c3b19 3. коміт f02a6d4 у main "Update FAQ answers" 4. коміт e19c3b7 у content/delivery-copy "Rewrite delivery page copy" 5. гілка fix/checkout-button починається від коміту f02a6d4 6. коміт 3a9d1c4 у fix/checkout-button "Reproduce bug in a test" 7. коміт 8be2f70 у main "Add cat treats bundle" 8. коміт b7e4a05 у fix/checkout-button "Re-enable button after cart edits"
Alex Tutor
Ви
fix/checkout-button, на два попереду main, а сайт показує main.Alex Tutor
Daniel
Alex Tutor
Питання 9Коротка відповідь · Завдання з перевіркою ШІ
Підтримка питає: «Daniel каже, що виправлення кнопки готове, і я бачу його коміти на GitHub. Чому в клієнтів кнопка досі сіра?» Виправлення лежить у fix/checkout-button, на 2 коміти ahead від main, і ще не змерджене. Напиши відповідь для підтримки на 2–3 речення без Git-жаргону.
Напишіть відповідь і отримайте оцінку та відгук від нашого ШІ-рецензента.
Увійдіть, щоб отримати відгук ШІВи
Alex Tutor
На цьому все. Ви відповіли на всі завдання — чудова робота.