Я нахожусь в уникальной ситуации слияния Git.
Я отрезал ветку feature
от ветки master
. Я сделал некоторые изменения на feature
, в то время как другие люди продолжали совершать на master
. Затем я слил feature
в master
. Сразу после этого мне пришлось вернуть этот коммит слияния, восстановив master
до его состояния перед слиянием.
Я продолжил разработку на feature
. Через некоторое время, чтобы привести feature
в соответствие с master
, я попытался объединить master
в feature
. После слияния моя результирующая ветвь feature
пропускает большинство файлов, которые присутствовали только в feature
, а не в master
. Он также перезаписал файлы, которые были общими для обеих ветвей, с их версиями master
, не сообщая о каких-либо конфликтах слияния. Причиной этого является тот факт, что (как упоминалось в первом абзаце) я ранее пытался объединить feature
с мастером, а затем немедленно отменил это объединение. Это заставляет Git думать, что файлы из feature
присутствовали в master
в какой-то момент его истории, затем по какой-то причине удалялись из master
, и поэтому он пытается удалить эти файлы из результирующей ветви feature
после слияния master
с ним
Итак, на данный момент у меня есть ветка feature
с master
, но в ней почти нет файлов, которые были только в ветке feature
. К счастью, у меня есть локальная копия моей ветки до слияния feature
, так что я могу увидеть, какие файлы отсутствуют после слияния, а затем добавить их вручную. Мне также приходится вручную находить конфликты, а не сообщать о них в Git.
Это много ручной работы. Есть ли простой способ выйти из этой ситуации? Я хотел бы иметь возможность сделать «правильное» слияние master
с моей резервной копией предварительного слияния feature
.