Занятие 19. Merge и rebase

🎯 Средняя ⏱ ~60 мин 🔀 Git

⚡ Кратко: merge и rebase

  • git merge — объединяет ветки, создаёт коммит слияния, сохраняет обе истории.
  • git rebase — переписывает историю: применяет коммиты поверх целевой ветки, делая историю линейной.
  • Золотое правило: rebase никогда не применять к публичным (общедоступным) веткам — это ломает историю у других разработчиков.
  • git commit --amend — исправить последний коммит; опасно если уже запушен.
  • git reset --soft/--mixed/--hard — откатить HEAD; --hard безвозвратно удаляет изменения!
  • git revert — безопасная отмена через новый коммит; не меняет историю.

Топ-3 опасности

  • ⚠️ git reset --hard — удаляет изменения безвозвратно. Альтернатива: git reset --soft или git revert.
  • ⚠️ git push --force после rebase на публичной ветке — ломает историю у всей команды.
  • ⚠️ git commit --amend после push — создаёт расхождение с удалённой веткой.

Предварительные знания

Этот урок опирается на материал Занятия 18 (Работа со скриптами) и особенно на Занятие 16 (Ветви в Git).

  • Умение создавать ветки: git branch, git checkout -b
  • Понимание концепции коммита и истории коммитов
  • Работа с удалённым репозиторием: git push, git pull

Следующий урок

После этого урока переходите к Занятию 20 — Summary Session 8, где мы повторим материал уроков 18 и 19.