Виконання Операції 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 для змін, які вже були відправлені у віддалені репозиторії, щоб запобігти цим проблемам.
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Awesome!
Completion rate improved to 5
Виконання Операції 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 для змін, які вже були відправлені у віддалені репозиторії, щоб запобігти цим проблемам.
Дякуємо за ваш відгук!