По порядку Middle Git спрашивают часто обновлено
Обновить ветку через rebase
Вопрос
Твоя ветка feature отстала от main на удалённом репозитории, а PR уже открыт. Расставь шаги обновления ветки через rebase по порядку (при rebase будет конфликт).
Попробуйте сами
Расставьте шаги по порядку стрелками.
- 1
git addдля исправленных файлов - 2
git fetch origin - 3
git push --force-with-lease - 4
git rebase origin/main - 5Поправить файлы с маркерами конфликта
- 6
git rebase --continue
Показать ответ и разбор
Коротко
Сначала забираем свежий main (fetch), затем переносим свои коммиты поверх него. На конфликте rebase останавливается: правим файлы, помечаем их решёнными через git add и продолжаем git rebase --continue.
Правильный порядок
- 1
git fetch origin - 2
git rebase origin/main - 3Поправить файлы с маркерами конфликта
- 4
git addдля исправленных файлов - 5
git rebase --continue - 6
git push --force-with-lease
Разбор
Сначала забираем свежий main (fetch), затем переносим свои коммиты поверх него. На конфликте rebase останавливается: правим файлы, помечаем их решёнными через git add и продолжаем git rebase --continue. Хеши коммитов поменялись, поэтому обычный push отклонят, нужен --force-with-lease: он не затрёт чужие коммиты, если кто-то успел запушить в ветку.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.