Выбор ответа Middle Git обновлено

push --force-with-lease

Вопрос

Ты сделал rebase своей ветки и хочешь её запушить. Почему лучше git push --force-with-lease, а не git push --force?

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

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Откажет, если на сервере есть коммиты, не виденные при fetch. Lease сравнивает текущее значение удалённой ветки с тем, что ты знаешь (origin/<ветка).

Варианты ответа

  1. --force-with-lease быстрее, потому что не передаёт объекты
  2. Откажет, если на сервере есть коммиты, не виденные при fetchправильный ответ
  3. --force-with-lease создаёт резервную ветку на сервере
  4. --force без lease запрещён в GitHub для всех веток

Разбор

Lease сравнивает текущее значение удалённой ветки с тем, что ты знаешь (origin/<ветка>). Если коллега успел запушить, команда откажет вместо того, чтобы молча стереть его коммиты.

  • Объём передачи такой же.
  • Никакой резервной ветки не создаётся.
  • GitHub сам по себе force push не запрещает, это настраивается правилами защиты веток.

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

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