Зміст курсу
Основи GitHub
Основи GitHub
Виконання Операції Rebase
Перенесення змін на гілку main
Перш ніж виконати операцію rebase, необхідно переключитися на гілку main
та отримати останні зміни:
Тепер розглянемо дерево комітів:
На даний момент як гілка main
, так і гілка feature/payment
містять коміти після останнього спільного предка. Це означає, що швидке злиття (fast-forward merge) виконати неможливо.
Якщо об'єднати ці гілки, відбудеться трьохстороннє злиття (three-way merge). Однак для збереження лінійної історії виконаємо перенесення (rebase) гілки feature/payment
на гілку main
. Для цього потрібно переключитися на гілку feature/payment
і виконати команду git rebase
:
Fast-forward злиття
Оскільки операція rebase виконана успішно, давайте ще раз переглянемо наше дерево комітів:
Як і очікувалося, історія комітів тепер лінійна, а останній коміт знаходиться у гілці feature/payment
. Тепер можна виконати просте fast-forward злиття у гілку main
:
Перевіримо, що обидві гілки вказують на один і той самий коміт, переглянувши останній коміт:
Видалення гілки Feature
Гілка main
тепер містить останній коміт з реалізованою платіжною системою, тому можна безпечно видалити як локальну, так і віддалену гілку feature/payment
. Наступна команда видаляє віддалену гілку:
Тепер можна видалити локальну гілку:
Нарешті, всі внесені зміни можна відправити назад у віддалений репозиторій:
Щоб переконатися, що гілку feature було видалено як локально, так і віддалено, ви можете виконати наступну команду, яка виведе усі (прапорець -a
означає всі) локальні та віддалені гілки:
Як бачите, гілку feature/payment
було успішно видалено, і тепер залишилося лише дві гілки: main
та john/test
разом із їхніми віддаленими копіями.
Загалом, rebase добре підходить для локальних змін, які ще не були опубліковані, але може спричинити значні проблеми для змін, які вже були опубліковані у віддаленому репозиторії та, можливо, завантажені іншими учасниками. Виконання rebase над комітами, які використовують інші, може призвести до плутанини та конфліктів через переписування історії комітів.
Загальне правило: уникайте виконання rebase для змін, які вже були відправлені у віддалені репозиторії, щоб запобігти цим проблемам.
Дякуємо за ваш відгук!