Изучаем Git. Урок 18.
Что такое git rebase
Отличия merge и rebase
как им пользоваться и чем он отличается от git merge
Видеоурок
Конспект урока
Краткое содержание урока, основные инструкции для командной строки, полезные ссылки и советы.
git pull --rebase
Команда git pull с флажком --rebase не приводит к созданию мердж коммита в ветке. Лучше всегда пулиться с флажком --rebase
Прописываем --rebase в конфигах
Чтобы каждый раз не писать флажок --rebase в команде git pull, можно один раз прописать настройку в конфигах
Перебазирование, git rebase
Как выполнить ребейз
При этом HEAD ветки перенесется так, как будто мы только что создали ветку от свежеподтянутого мастера
Отличия ребейза от мерджа
1. Чистая история
2. Нет мердж-коммитов
3. Коммиты идут друг за другом в логическом порядке
4. git rebase переписывает историю коммитов, в отличие от git merge
Различные взгляды на историю коммитов
Первый взгляд - историю переписывать нельзя. Используем только мерджи, так история получается "честная"
Второй взгляд - историю переписывать можно и нужно, чтобы она была более чистой и красивой
Третий взгляд - до пуша ветки переписывать историю можно, после пуша - нет. Это нужно, чтобы не доставлять неудобства коллегам (разберем эти ситуации в отдельном уроке)
Какой подход выбрать - решать нам самим. Многое зависит от команды и проекта, в которых мы работаем
"Плоская" история коммитов
Пример одной из крайностей в подходах к истории коммитов - ни одного мердж-коммита в мастере. Все коммиты идут друг за другом, деления на ветки нет
Конфликты при ребейзе
Возникают по тем же причинам, что и при других операциях: мердж, копирование коммитов и прочее. Разрешаются аналогично - сначала резолвим конфликты, затем завершаем ребейз командой
Также можно отменить процесс ребейза командой
Что же выбрать?
Смотрите видео в начале страницы и найдете все ответы ;-)
Спасибо за внимание и до встречи!