По порядку Middle Git спрашивают часто обновлено

Обновить ветку через rebase

Вопрос

Твоя ветка feature отстала от main на удалённом репозитории, а PR уже открыт. Расставь шаги обновления ветки через rebase по порядку (при rebase будет конфликт).

Попробуйте сами

Расставьте шаги по порядку стрелками.

  1. 1
    git add для исправленных файлов
  2. 2
    git fetch origin
  3. 3
    git push --force-with-lease
  4. 4
    git rebase origin/main
  5. 5
    Поправить файлы с маркерами конфликта
  6. 6
    git rebase --continue
Показать ответ и разбор

Коротко

Сначала забираем свежий main (fetch), затем переносим свои коммиты поверх него. На конфликте rebase останавливается: правим файлы, помечаем их решёнными через git add и продолжаем git rebase --continue.

Правильный порядок

  1. 1
    git fetch origin
  2. 2
    git rebase origin/main
  3. 3
    Поправить файлы с маркерами конфликта
  4. 4
    git add для исправленных файлов
  5. 5
    git rebase --continue
  6. 6
    git push --force-with-lease

Разбор

Сначала забираем свежий main (fetch), затем переносим свои коммиты поверх него. На конфликте rebase останавливается: правим файлы, помечаем их решёнными через git add и продолжаем git rebase --continue. Хеши коммитов поменялись, поэтому обычный push отклонят, нужен --force-with-lease: он не затрёт чужие коммиты, если кто-то успел запушить в ветку.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.