Но тогда придётся удалять мастер на внешнем сервере и заливать заново.
При коллективной работе это вызовет некоторые коллизии. Как минимум всем коллегам придётся выполнить git pull —rebase для мастера.
Вариант с revert более правильный.
hsadik, если сливать Pull Request методом squash and merge, то останется только один коммит с финальным состояние супа. Информация о том, кто посолил, а кто поперчил, будет утеряна.
Андрей, вы правильно мыслите.
Первая ветка для отслеживания продукта от разработчика.
Вторая ветка с вашими доработками начинается всегда от вершины первой.
Когда вам присылают обновление, вы переключаетесь в первую ветку и отслеживаете там изменения в виде коммита.
Затем вашу ветку с доработками пересаживаете поверх обновлённой главной ветки через rebase
Мы так обновляли у себя ИРБИС64. Там разработчики вообще не пользуются никакими VCS и пишут на Delphi5 до сих пор, а я с помощью гита находил в итоге косяки в их обновах.