TGViewer
Java Portal | Программирование Java Portal | Программирование @java_iibrary · 11.6K subscribers
Post #1524 1.82K
Давайте разберёмся с Git Merge и Rebase

Git предоставляет два мощных инструмента для интеграции изменений из одной ветки (часто feature-ветки) в другую (обычно main):

Merge и Rebase

Оба инструмента решают одну задачу — объединение кода, но делают это по-разному.

✔️ Git Merge

Merge создаёт новый коммит, который фиксирует объединение двух веток.
В истории это видно как слияние двух независимых линий разработки в одной точке.

Шаги:

1. Переключись на целевую ветку (обычно main)
2. Выполни git merge <feature> — укажи имя исходной ветки

Результаты:

🔸Создаётся новый merge-коммит в целевой ветке с ссылками на родительские коммиты
🔸История целевой ветки становится разветвлённой, отражая все слияния
🔸Это более безопасный вариант для командной работы — история изменений сохраняется

✔️ Git Rebase

Rebase переписывает историю ветки (обычно feature-ветки), как будто коммиты были сделаны поверх другой ветки (например, main).

Получается более линейная история без merge-коммитов.

Шаги:

1. Переключись на ветку, которую хочешь ребейзнуть (например, feature)
2. Выполни git rebase <main>

Результаты:

🔸Коммиты из feature будут повторно применены на вершину main, создаются новые коммиты с теми же изменениями
🔸Целевая ветка (main) при этом не изменяется
🔸История feature-ветки становится линейной, но её история будет переписана

Примечания:

После успешного rebase, финальное merge в main часто выполняется как fast-forward, т.к. история выглядит непрерывной

Rebase изменяет ветку, на которой ты находишься, а не целевую ветку

Итог:

merge сохраняет историю как есть → хорошо для командной работы

rebase делает историю аккуратной → хорошо для чистоты, но требует осторожности

👉 Java Portal
  • ❤ 12
  • 👍 4
More from @java_iibrary
  1. Oct 1, 2026Когда Java-стектрейс оказался длиннее контекста ИИ 👀 👉 Java Portal
  2. Oct 1, 2026Spring Boot 4: приближение срока истечения SSL-сертификатов больше не меняет статус health…
  3. Sep 30, 2026Почему один и тот же Java-файл .class запускается на Windows, Linux и macOS без перекомпил…
  4. Sep 30, 2026Docker прост, пока всё работает. Но что делать, если контейнер постоянно перезапускается,…
  5. Sep 29, 2026Эволюция языков программирования 1940-е → Машинный код ⬇️ 1950-е → Ассемблер ⬇️ 1960-е → F…
  6. Sep 29, 2026Большинство Java-разработчиков используют эти термины каждый день. Удивительно, но многие…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →