Основи Ребейзингу
Свайпніть щоб показати меню
Створення коміту в гілці main
Почнемо зі створення коміту безпосередньо у віддаленій гілці main, відредагувавши файл README.md у віддаленому репозиторії. Це призведе до того, що гілки main та feature/payment матимуть розбіжну історію комітів.
Ось рядок, доданий до файлу:
New feature will soon be integrated.
Ось відповідне повідомлення коміту:
Add information about new feature in README.md
Розуміння ребейзу
Як ми згадували у попередньому розділі, після того як гілка feature була перевірена та протестована, її можна і слід об'єднати з гілкою main. До цього моменту ми використовували для цього лише команду git merge. Однак існує й інший підхід — використання команди git rebase.
Ребейз — це процес переміщення або об'єднання послідовності комітів до нового базового коміту. Це здійснюється шляхом повторного застосування змін з однієї гілки на іншу, що призводить до лінійної історії комітів.
Коли ми створюємо гілку, Git відстежує останній коміт на обох гілках. Якщо лише одна гілка має нові зміни, Git може виконати fast-forward і застосувати зміни. Однак якщо обидві гілки мають нові зміни, Git створює новий merge-коміт, що призводить до тристороннього злиття.
Ось як виглядатиме тристороннє злиття у нашому випадку, де C4 був останнім комітом у гілці feature/payment перед злиттям:
Однак трьохстороннє злиття може ускладнити налагодження через розгалужену, нелінійну історію. За допомогою ребейзу ми змінюємо базу наших комітів і відтворюємо їх поверх нової бази, що дозволяє Git виконати швидке пряме злиття та підтримувати лінійну історію.
Нижче наведено анімацію, яка ілюструє, як можна виконати ребейз у нашому випадку (ідентифікатори комітів тут не відповідають реальним):
Під час ребейзу гілки ви фактично переписуєте її історію. Це означає, що старі коміти замінюються новими, які мають інші ідентифікатори (хеш-суми), оскільки вони базуються на інших знімках коду. Як показано на анімації вище, ідентифікатор коміту у гілці feature/payment змінився після ребейзу.
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат