Запропонувати правкуПокращити цю статтюДопрацюйте відповідь до «Що таке конфлікт під час rebase?». Ваші зміни проходять модерацію перед публікацією.Потрібне підтвердженняКонтентЩо ви змінюєте🇺🇸EN🇺🇦UAПереглядЗаголовок (UA)Коротка відповідь (UA)**Конфлікт при** `git rebase` - це ситуація, коли Git не може застосувати черговий коміт поверх нової бази, тому що зміни конфліктують з уже наявним кодом. **Ключове:** конфлікт при `git rebase` вимагає вручну розв'язати його і продовжити rebase.Показується над повною відповіддю для швидкого нагадування.Відповідь (UA)Зображення**Конфлікт при** `git rebase` - це ситуація, коли Git **не може застосувати черговий коміт поверх нової бази**, тому що зміни **конфліктують з уже наявним кодом**. Простіше: Git намагається «переграти» твої коміти один за одним, і на якомусь кроці вони не сходяться з поточним станом гілки. --- ## Коли виникає конфлікт при rebase Конфлікт з'являється, якщо: - ти робиш `rebase` на гілку, де код **уже сильно змінився** - твій коміт змінює ті самі рядки, що й коміти в новій базі На відміну від merge, конфлікт виникає **не одразу для всієї гілки**, а **на конкретному коміті**. --- ## Що відбувається під час rebase Коли ти виконуєш: ```bash git rebase main ``` Git: 1. бере **перший коміт** твоєї гілки 2. намагається застосувати його поверх `main` 3. якщо не виходить - **зупиняється на цьому коміті** 4. чекає, поки ти вирішиш конфлікт --- ## Як виглядає конфлікт Файл виглядає так само, як і при merge: ```text <<<<<<< HEAD console.log("from main"); ======= console.log("from feature commit"); >>>>>>> commit_hash ``` Різниця - у контексті: - `HEAD` - нова база (`main`) - нижня частина - зміни **конкретного коміту**, який зараз застосовується --- ## Як розв'язується конфлікт при rebase 1. Відкриваєш конфліктні файли 2. Виправляєш код 3. Прибираєш конфліктні маркери 4. Додаєш файли: ```bash git add file.js ``` 5. Продовжуєш rebase: ```bash git rebase --continue ``` Якщо потрібно скасувати: ```bash git rebase --abort ``` --- ## Ключова відмінність від конфлікту при merge | Merge | Rebase | |---|---| | Конфлікт вирішується один раз | Конфлікти можуть виникати **на кожному коміті** | | Рішення -> один `git commit` | Рішення -> `git rebase --continue` | | Уся гілка одразу | Коміти по черзі | --- ## Чому rebase здається складнішим - конфліктів може бути більше - потрібно розуміти, **на якому коміті ти перебуваєш** - легко заплутатися без досвіду Зате: - кожен конфлікт **локальний і логічний** - підсумкова історія чистіша --- ## Формулювання для співбесіди > **Конфлікт при** `git rebase` **виникає, коли Git не може застосувати черговий коміт поверх нової бази, і вимагає вручну розв'язати конфлікт та продовжити rebase.**Для рев’юераПримітка для модератора (необов’язково)Бачить лише модератор. Прискорює рев’ю.