Я обычно полностью принимаю слияния в git, но недавно я начал работать с репозиторием, где стратегия слияния веток тем в master заключалась в том, чтобы раздавить их в один коммит.
Я только что обнаружил, что это вызываетполный хаос при попытке реинтегрировать вторую ветку темы, основанную на первой.
Допустим, у меня есть:
A-I' master
\
B-C-E-G-I topicA
\ \
D-F-H-J topicB
Где I'
- это сжатое слияние от topicA
доmaster
.
Если я сливаю master
в topicB
, тогда возникает много конфликтов. Использование инструмента слияния бесполезно, поскольку LOCAL будет включать изменения с ABCDEFGHJ
, REMOTE будет ABCEGI
, а BASE - A
. Попытка увидеть различия I
против DFHJ
может быть очень сложной. Если я отказываюсь от инструмента слияния и просто различаю LOCAL и REMOTE, тогда изменения становятся намного более очевидными, но я должен вручную разрешить все конфликты.
Если я перебазирую topicB
на master
, тогда он получаетеще более странно, поскольку различные файлы меняются между B
и I
на topicA
, и поэтому повторное применение коммитов ABCDFJ
на I'
создает бессмыслицу.
Как мне получить I'
в topicB
?
Есть ли лучший способ интегрировать ветки тем, чтобы избежать этого в будущем?