Урок 43 із 65
66%
← Назад

Перебазування гілок (git rebase)

Використання git rebase для перенесення комітів однієї гілки поверх іншої та створення лінійної історії комітів.

Перебазування гілок у Git

У Git існує два основних способи об'єднання змін між гілками: git merge та git rebase. Обидві команди дозволяють перенести зміни з однієї гілки до іншої, але роблять це по-різному.

Команда git rebase переносить коміти поточної гілки поверх останнього коміту іншої гілки. Завдяки цьому історія комітів стає більш послідовною та легшою для читання.

Створення робочої гілки

git branch test
git switch test

Після переходу до нової гілки створіть або змініть файл, додайте його до області підготовки та виконайте коміт.

git add file.txt
git commit -m "Add file.txt"

Перебазування гілки

Перебуваючи у гілці test, виконайте перебазування відносно основної гілки:

git rebase main

Якщо у вашому репозиторії основна гілка має назву master, використовуйте:

git rebase master
До перебазування

main
A ── B

       \
        C ── D
         test


git switch test
git rebase main


Після перебазування

main
A ── B
         \
          C' ── D'
             test

Під час перебазування Git створює нові коміти з тими самими змінами, але вже після останнього коміту гілки main. Завдяки цьому історія стає лінійною.

Злиття після перебазування

Після успішного перебазування можна перейти до основної гілки та об'єднати зміни.

git switch main
git merge test

У більшості випадків після перебазування Git виконає швидке злиття (Fast-forward), тому додатковий merge-коміт створений не буде.

Порівняння merge та rebase

git mergegit rebase
Створює коміт злиттяПереписує історію комітів
Історія може містити розгалуженняІсторія стає лінійною
Безпечний для спільної роботиНе рекомендується для вже опублікованих комітів

Перегляд історії

git log --oneline --graph
* d4e8f12 Add file.txt
* a1b2c3d Previous commit
* 7e5c1aa Initial commit
❗ Важливо:

Не використовуйте git rebase для комітів, які вже були відправлені до спільного віддаленого репозиторію. Перебазування змінює історію комітів і може створити проблеми іншим учасникам команди.

📌 Завдання:
  1. Створіть дві гілки: test1 і test2.
  2. У кожній гілці створіть по три коміти зі змінами у різних файлах.
  3. Перебазуйте одну з гілок відносно основної за допомогою git rebase.
  4. Перейдіть до основної гілки та виконайте git merge.
  5. Перегляньте історію командою git log --oneline --graph.
💡 Показати підказку

Перед виконанням git rebase переконайтеся, що ви перебуваєте саме у тій гілці, яку потрібно перебазувати.

✅ Показати відповідь
Відповідь:

Створити гілку:

git branch test
git switch test


Створити коміт:

git add file.txt
git commit -m "Add file.txt"


Перебазувати:

git rebase main

або

git rebase master


Повернутися до основної гілки:

git switch main
git merge test


Переглянути історію:

git log --oneline --graph