Запропонувати правкуПокращити цю статтюДопрацюйте відповідь до «Що робить git rebase з історією?». Ваші зміни проходять модерацію перед публікацією.Потрібне підтвердженняКонтентЩо ви змінюєте🇺🇸EN🇺🇦UAПереглядЗаголовок (UA)Коротка відповідь (UA)**`git rebase`** змінює історію комітів, переписуючи її так, ніби коміти були зроблені в іншому місці історії. **Ключове:** rebase не переносить коміти буквально - він пересоздає їх.Показується над повною відповіддю для швидкого нагадування.Відповідь (UA)Зображення`git rebase` **змінює історію комітів**, **переписуючи її так, ніби коміти були зроблені в іншому місці історії**. Простіше: rebase **переносить коміти і створює їх заново**, роблячи історію більш лінійною. --- ## Що саме відбувається при `git rebase` Уявимо ситуацію: ``` A---B---C (main) \ D---E (feature) ``` Ти перебуваєш у `feature` і робиш: ```bash git rebase main ``` Git: 1. тимчасово «прибирає» коміти `D` і `E` 2. переносить вказівник `feature` на `C` 3. **створює нові коміти** `D'` і `E'` поверх `C` Результат: ``` A---B---C---D'---E' (feature) ``` `D'` і `E'` - **нові коміти з новими hash**, хоча зміни ті самі. --- ## Як це впливає на історію `git rebase`: - **переписує коміти** - змінює їхні hash - робить історію **прямою і читабельною** - прибирає зайві merge-коміти --- ## Чому це важливо для співбесіди Ключова фраза: > `git rebase` не переносить коміти буквально - він пересоздає їх. Це показує розуміння, а не заучування. --- ## Interactive rebase (`git rebase -i`) В інтерактивному режимі можна: - об'єднувати коміти (`squash`) - змінювати повідомлення (`reword`) - видаляти коміти - змінювати порядок ```bash git rebase -i HEAD~3 ``` Це **класичне питання рівня "middle+/senior"**. --- ## Головне правило (обов'язково сказати) **Не можна робити rebase для публічних комітів.** Формулювання для співбесіди: > Rebase безпечний тільки для локальних або ще не опублікованих гілок. --- ## `rebase` vs `merge` (дуже коротко) - `merge` **зберігає історію як є** - `rebase` **переписує історію** --- ## Короткий відповідь для співбесіди > `git rebase` переписує історію, пересоздаючи коміти поверх іншої точки історії, через що змінюються їхні hash і історія стає лінійною. --- ## Часта помилка кандидатів Неправильно: «rebase просто переміщує гілку» Правильно: він **пересоздає коміти**, а не рухає їх.Для рев’юераПримітка для модератора (необов’язково)Бачить лише модератор. Прискорює рев’ю.