Позвольте мне описать мою ситуацию:
Г-н Блонд и г-н Орандж работают над ветвью А, которая выходит из ведущей ветки на фиксацию M1. Ветвь А имеет 2 фиксации: A1 и A2.
M1
\
\
A1 - A2
Между тем, г-н Орандж совершил и сделал еще 2 фиксации на главной ветки, M2 и M3.
M1 - M2 - M3
\
\
A1 - A2
Г-н Блонд вытаскивает из пульта и через некоторое время решает переложить на главную ветку:
M1 - M2 - M3
\ \
\ \
A1 - A2 A1` - A2`
Теперь A1` и A2` - это перекомпонуемые коммиты, которые существуют локально у мистера Блонда, и A1 и A2 существуют удаленно. Блонд подталкивает свои коммиты, используя -f, чтобы заставить свои изменения и "переписать" историю. Теперь удаленный репозиторий выглядит следующим образом:
M1 - M2 - M3
\
\
A1` - A2`
Но г-н Орандж также работал в филиале A. Его локальный репозиторий по-прежнему выглядит следующим образом:
M1 - M2 - M3
\
\
A1 - A2
Что нужно сделать г-ну Орангу для синхронизации с веткой A в удаленном репозитории?
Нормальное нажатие не будет работать. Будет ли pull -f принудительно изменять изменения с удаленного компьютера? Я знаю, что удаление локальной версии A и ее повторное подключение из удаленного репозитория будет делать трюк, но это, похоже, не является хорошим способом достижения этого.