Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Основи Ребейзингу | Більш Складні Робочі Процеси
Основи GitHub

Основи Ребейзингу

Свайпніть щоб показати меню

Створення коміту в гілці 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.

Note
Дізнайтеся більше

Ребейз — це процес переміщення або об'єднання послідовності комітів до нового базового коміту. Це здійснюється шляхом повторного застосування змін з однієї гілки на іншу, що призводить до лінійної історії комітів.

Коли ми створюємо гілку, Git відстежує останній коміт на обох гілках. Якщо лише одна гілка має нові зміни, Git може виконати fast-forward і застосувати зміни. Однак якщо обидві гілки мають нові зміни, Git створює новий merge-коміт, що призводить до тристороннього злиття.

Ось як виглядатиме тристороннє злиття у нашому випадку, де C4 був останнім комітом у гілці feature/payment перед злиттям:

Тристороннє злиття

Однак трьохстороннє злиття може ускладнити налагодження через розгалужену, нелінійну історію. За допомогою ребейзу ми змінюємо базу наших комітів і відтворюємо їх поверх нової бази, що дозволяє Git виконати швидке пряме злиття та підтримувати лінійну історію.

Нижче наведено анімацію, яка ілюструє, як можна виконати ребейз у нашому випадку (ідентифікатори комітів тут не відповідають реальним):

ребейз
Note
Примітка

Під час ребейзу гілки ви фактично переписуєте її історію. Це означає, що старі коміти замінюються новими, які мають інші ідентифікатори (хеш-суми), оскільки вони базуються на інших знімках коду. Як показано на анімації вище, ідентифікатор коміту у гілці feature/payment змінився після ребейзу.

question mark

Яка основна мета використання git rebase замість git merge?

Виберіть правильну відповідь

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 3. Розділ 4

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

Секція 3. Розділ 4
some-alt