Объединить с мастером, игнорируя плохой коммит на мастере - PullRequest
2 голосов
/ 22 апреля 2020

У меня в руках настоящий беспорядок, но я уверен, что найдется хитрость, чтобы это исправить.

У нас был разработчик, который вел отдельную ветку для каждой «версии» программного обеспечения, которая была Ужасно, так как исправление ошибки должно быть выбрано из вишни на каждую ветку. В рассматриваемом репо было 6 параллельных веток.

В действительности в каждой ветке происходили различные исправления ошибок. Так что в каждой отрасли было что-то совершенно другое. Этот разработчик уже ушел, и я хотел бы объединить все ветви обратно в master. Я сделал следующее (для ясности проиллюстрированы две ветви функций):

M0 - M1 - M2 - - - - - - - - - - M3* - M4 - M5 - M6
 \    \                                     /   /
  \    fB - fB - fB - fB - - - - - - - - - -   /
   fA - fA - fA - fA - - - - - - - - - - - - - 

Это выглядело нормально, но есть одна серьезная проблема. При коммите 'M3 *' каждый файл в хранилище был зафиксирован, так как права доступа к файлу изменились. Никаких функциональных изменений в файлах не произошло. Этот коммит произошел совсем недавно, чем коммиты в ветвях функций, поэтому при слиянии выбирается именно эта версия.

Все вышеперечисленные ошибки были перенесены на пульт.

Я хотел бы объединить все изменения (включая изменения в M2 и M4), но игнорировать изменения в M3 *.

Как я мог go об этом?

1 Ответ

2 голосов
/ 22 апреля 2020

Один простой способ сделать это без переписывания ни локальной, ни удаленной истории - это вернуть зафиксировать M3

Это не приведет к удалению или изменению M3 в любом случае, просто создайте новый коммит (назовем его M7), содержащий точные противоположные изменения, внесенные M3:

git revert M3
M0 - M1 - M2 - - - - - - - - - - M3* - M4 - M5 - M6 - M7
 \    \                                     /   /
  \    fB - fB - fB - fB - - - - - - - - - -   /
   fA - fA - fA - fA - - - - - - - - - - - - - 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...