PassFront
  1. PassFront
  2. База знаний
  3. Продвинутые темы

Какие плюсы и минусы force push?

Продвинутые темы

Плюсы `force push`: позволяет переписать историю (после rebase, amend, squash). Минусы: опасен — может затереть чужие коммиты и сломать общую ветку.

Что делает

git push --force перезаписывает удалённую ветку локальной, даже если истории разошлись (после переписывания истории локально).

Плюсы

  • Переписать историю — запушить результат rebase, amend, squash коммитов:
git rebase -i HEAD~3   # переписал историю
git push --force        # обновил удалённую ветку
  • Чистая история — убрать лишние коммиты, поправить сообщения.
  • Исправить ошибку в уже запушенном коммите (свой feature-branch).

Минусы

  • Затирает чужие коммиты — если кто-то запушил после вас, force push удалит их работу.
  • Ломает общие ветку — коллеги, у кого была старая история, получат конфликты.
  • Необратимость — можно потерять коммиты (хотя reflog помогает восстановить).

Как безопаснее

  • `--force-with-lease` — отклоняет push, если удалённая ветка изменилась (защита от затирания чужого):
git push --force-with-lease
  • Только на своих feature-ветках, не на shared (main/develop).
  • Никогда force push в общие защищённые ветки.

Коротко для собеседования

Плюсы force push: переписать историю (после rebase/amend/squash), чистая история, исправление запушенного. Минусы: опасен — затирает чужие коммиты и ломает общую ветку. Безопаснее — --force-with-lease (не затрёт чужое) и только на своих feature-ветках, никогда в общие (main/develop).

Другие вопросы раздела