Здесь ситуация:
- существует ведущая ветвь M
- в какой-то момент появилась ветвь функции F из M. Это должно было стать основной ветвью для функции, и все другие разработчики, работающие над этой функцией, должны были разветвляться из этой ветки или работать непосредственно с этой веткой.
- в какой-то момент из M была создана ветвь F1. Часть разработчиков разработчиков создала собственную ветку и начала работать над частью этой функции. Но они забыли использовать F, вместо этого они использовали M. И никто не знал об этом (включая меня).
Большинство разработчиков, работающих с этой функцией, использовали F. Они несколько раз перегружали F на M несколько раз (каждый раз при перемотке вперед). Все идет нормально. Однако несколько разработчиков, использующих их F1, а также несколько раз переустанавливаются на М.
Сегодня был день слияния хозяев. Поэтому разработчики с F1 перешли на F - они сообщили о некоторых проблемах слияния; но через несколько часов они сообщили об этом и F есть все.
Теперь, я, я хотел объединить F в M и официально завершить работу над F. К моему supprise, он не мог быть объединен на github автоматически. Поэтому я сделал git fetch и начал перезагружать F на M. И хаос начался, конфликты. Все они появляются в файлах, которые мы даже не касались при работе над F. Я сдался после 20-30 разрешений конфликтов и git rebase -continue.
Теперь, когда я понял (после чата с этими разработчиками), что у них есть F1, созданный с М, а не с F Кажется, я знаю, что вызывает конфликты. Это потому, что изменения для M теперь применяются к F во второй раз? Правильно ли мое предположение? Я не уверен. Но я уверен, что не знаю, как решить эту ситуацию. Я не могу своевременно объединить F в M из-за бесконечного количества конфликтов в файлах, которые мы даже не касались при работе над F.