Виконання Операції Rebase
Свайпніть щоб показати меню
Перенесення змін на гілку main
Перш ніж виконати операцію rebase, необхідно переключитися на гілку main та отримати останні зміни:
git checkout main
git pull
Тепер переглянемо дерево комітів:
git log --graph --oneline --all
На даний момент як гілка main, так і гілка feature/payment мають коміти після останнього спільного предка. Це означає, що fast-forward злиття виконати неможливо.
Якщо об'єднати ці гілки, відбудеться трьохстороннє злиття. Однак для збереження лінійної історії виконується ребейз гілки feature/payment на гілку main. Для цього потрібно перейти на гілку feature/payment і виконати команду git rebase:
git checkout feature/payment
git rebase main
Fast-forward злиття
Оскільки rebase виконано успішно, розглянемо наше дерево комітів ще раз:
git log --graph --oneline
Як і очікувалося, історія комітів тепер лінійна, а останній коміт знаходиться у гілці feature/payment. Тепер можна виконати просте fast-forward злиття у гілку main:
git checkout main
git merge feature/payment
Перевірка, що обидві гілки вказують на один і той самий коміт, переглянувши останній коміт:
git log -n 1
Видалення гілки Feature
Гілка main тепер містить останній коміт з реалізованою платіжною системою, тому можна безпечно видалити як локальну, так і віддалену гілку feature/payment. Наступна команда видаляє віддалену гілку:
git push --delete origin feature/payment
Тепер можна видалити локальну гілку:
git branch -d feature/payment
Нарешті, всі внесені зміни можна відправити назад до віддаленого репозиторію:
git push
Щоб перевірити, що гілку feature було видалено як локально, так і віддалено, можна виконати наступну команду, яка виведе всі (-a означає всі) локальні та віддалені гілки:
git branch -a
Як видно, гілку feature/payment було успішно видалено, і тепер залишилося лише дві гілки: main та john/test разом із їхніми віддаленими копіями.
Загалом, rebase добре підходить для локальних змін, які ще не були опубліковані, але може спричинити значні проблеми для змін, які вже були опубліковані у віддаленому репозиторії та, можливо, завантажені іншими учасниками. Виконання rebase комітів, які використовують інші, може призвести до плутанини та конфліктів через переписування історії комітів.
Загальне правило: уникайте виконання rebase для змін, які вже були відправлені у віддалені репозиторії, щоб запобігти цим проблемам.
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат