Обе команды объединяют изменения из одной ветки в другую, но делают это по-разному.
1️⃣ Git Merge.
Создаёт новый коммит слияния, сохраняя историю всех веток.
# Переключись на ветку, куда нужно влить изменения (например, main).
git checkout main
# Влить изменения из ветки feature.
git merge feature
✅ Плюсы:
🔹 Простота использования.
🔹 Сохраняет полную историю.
❌ Минусы:
🔸 Захламляет историю коммитами слияния.
------------------------------------------------------
2️⃣ Git Rebase.
«Перемещает» Ваши коммиты в другую ветку, перезаписывая историю другой ветки таким образом, будто вы только что ответвились от этой ветки и добавили новые коммиты. Все прошлые коммиты в истории данной ветки будут до Ваших коммитов.
# Переключись на feature ветку.
git checkout feature
# Перебазировать её на main.
git rebase main
✅ Плюсы:
🔹 Чистая, линейная история.
🔹 Нет лишних коммитов слияния.
❌ Минусы:
🔸 Может усложнить работу в команде (переписывает историю).
‼️ Когда вы делаете rebase, Git фактически переписывает историю коммитов – создает новые коммиты с тем же содержимым, но другим хешем.
Если вы уже запушили ветку в удаленный репозиторий, обычный git push без --force не сработает, потому что локальная история и на сервере расходится.
git push --force
------------------------------------------------------
✍️ Когда что использовать?
🔹 Merge – для публичных веток (main, dev).
🔹 Rebase – для локальных feature веток перед мержем.
➡️ Подписаться на канал
Мобильный трудоголик