Запропонувати правкуПокращити цю статтюДопрацюйте відповідь до «У чому основна різниця між merge і rebase?». Ваші зміни проходять модерацію перед публікацією.Потрібне підтвердженняКонтентЩо ви змінюєте🇺🇸EN🇺🇦UAПереглядЗаголовок (UA)Коротка відповідь (UA)Основна різниця між **`git merge`** і **`git rebase`** - у тому, як вони працюють з історією комітів. **Ключове:** `merge` зберігає історію, а `rebase` переписує історію.Показується над повною відповіддю для швидкого нагадування.Відповідь (UA)ЗображенняОсновна різниця між `git merge` і `git rebase` - **у тому, як вони працюють з історією комітів**. `merge` **зберігає історію**, `rebase` **переписує історію**. --- ## Ключова ідея (дуже важливо для співбесіди) - `git merge` - *«об'єдную гілки, як є»* - `git rebase` - *«переписую свої коміти так, ніби вони були зроблені пізніше»* --- ## Візуальне порівняння ### `git merge` ``` A---B---C---F---M (main) \ / D---E--- ``` - створюється **merge-коміт** - видно, що була окрема гілка - історія розгалужується --- ### `git rebase` ``` A---B---C---D'---E' (feature) ``` - **merge-коміту немає** - історія лінійна - коміти `D` і `E` стали **новими** --- ## Головна відмінність в одному абзаці | Параметр | git merge | git rebase | |---|---|---| | Історія | Зберігається | Переписується | | Merge-коміт | Так (зазвичай) | Ні | | Безпека | Безпечний для спільних гілок | Небезпечний для спільних гілок | | Історія | Розгалужена | Лінійна | | Конфлікти | Один раз | Можливі кілька разів | | Використання | Командна робота | Локальна робота | --- ## Коли що використовувати ### Використовуй `merge`, якщо: - гілка **спільна** - код уже **запушено** - важлива повна історія - працюєш у команді `merge` - безпечний варіант за умовчанням --- ### Використовуй `rebase`, якщо: - гілка **тільки твоя** - хочеш **охайну історію** - готуєш код до merge - оновлюєш feature-гілку з `main` `rebase` - для наведення ладу --- ## Популярне формулювання для співбесіди > `git merge` **об'єднує гілки, зберігаючи історію і створюючи merge-коміт,** > **а** `git rebase` **переносить коміти однієї гілки поверх іншої, переписуючи історію і роблячи її лінійною.** --- ## Золоте правило (часто запитують) > **Ніколи не роби rebase публічних гілок** > **Merge можна робити завжди**Для рев’юераПримітка для модератора (необов’язково)Бачить лише модератор. Прискорює рев’ю.