9.1 Git – Перемещение коммитов – Перебазирование вместо слияния: rebase

preview_player
Показать описание
- Команда git rebase: перенос ветки поверх master.
- Подробное описание, как работает команда rebase.
Рекомендации по теме
Комментарии
Автор

Наконец то, нашлось видео как решать конфликты при rebase, вообще об этом никто не говорит в ютубе. Однозначно лайк

modjaid
Автор

сколько искал, пока это не посмотрел, ничего понять не мог, замечательное объяснение, огромное спасибо !

ruslan
Автор

Спасибо, более подробной и понятной информации ещё не находил. Наконец-то я понял, как это работает)

alfa_main
Автор

спасибо огромнейшее, очень полезно и доступно

alexanonymous
Автор

Спасибо! Все никак не мог понять почему при ребейзе просит решить конфликт с какимто древним коммитом . Тут все предельно ясно описано

vlera
Автор

Просто как боженька промолвил. Я потратил на самостоятельное изучение rebase около двух дней, но только 8 минут этого видео меня посвятили о хоть какой-то идее процесса, а ведь это только начало ^^"

Anton
Автор

2:16
3:44 отлчичие git rebase --abort от git reset --hard и git reset --quit
4:43 git rebase --skip (все изменения из текущего коммита будут проигнорированы и rebase пойдет дальше копировать следующие)
4:53 пустые коммиты - коммиты, которые не привносят никаких изменений, например если кто-то в основной ветке их уже внес (rebase пропускает их автоматически)
5:15 продолжение перебазирования через индексирование и git rebase --continue
6:04 отмена rebase через перенесение указателя обратно
6:24 rebase (как и merge и reset) создает файл-ссылку ORIG_HEAD с идентификатором того, откуда была перенесена ветка
6:32 следовательно, чтобы перенести ветку обратно можно указать git reset --hard ORIG_HEAD
6:38 минусы такого подхода (git reset --hard ORIG_HEAD), вместо этого в более сл. ситуациях можно использовать более надежный вариант:
git reflog [ветка (лучше чем HEAD)] -1 (- 1 по желанию)
7:22 git show --quiet [ветка]@{1}
7:28 git reset --hard [ветка]@{1}
7:46 Аргументы rebase - можно указать вместо одной ветки (на которую переносится текущая) две (первый аргумент - ветка, на которую переносится, второй - с которой), но чтобы не запутаться в последовательности аргументов, лучше использовать две отдельные команды - git checkout [ветка] + git rebase [ветка, на которую хотим перенести]

Леонид-сз
Автор

Спасибо за крайне полезное видео. Все предельно разжевано!
Один вопрос. Что означает флаг -i после команды rebase ?

UnrealTabby
Автор

Не понятно, что значит "старые коммиты A, B и C со временем будут удалены". Когда делаю rebase. у меня остаются как A, B, C, так и A', B', C', никуда старые коммиты не удаляются.

deadpoolweid
Автор

А я правильно понимаю что есть указатель HEAD который как бы показывает где мы сейчас находимся (какую версию проекта видим), и именно он на 2:38 передвигается.
НО, есть также и другой указатель HEAD - который указывает на последний коммит каждой из веток (т.е каждая ветка имеет свой HEAD)? на 5:37 он передвигается

andreipalii