Какие плюсы и минусы 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).