Объединение объекта с мастером, обращение назад, затем слияние мастера с объектом вызывает проблемы - PullRequest
0 голосов
/ 25 января 2019

Я нахожусь в уникальной ситуации слияния 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.

1 Ответ

0 голосов
/ 25 января 2019

Ошибка в вашем master.Если у вас есть привилегия принудительного нажатия master, попробуйте выполнить полный сброс вместо возврата:

$ git reset --hard commit-id

Это отменит ваш возвратный коммит и слияние, затем вы можете объединить master в feature

Если после этих 2 неправильных коммитов есть некоторые правильные коммиты, используйте rabase, чтобы отменить этот 2 коммит.

Будьте осторожны, принудительный толчок может испортить ваш репо, если вы допустите некоторые ошибки.


Если у вас нет привилегии master, отмените фиксацию возврата, если вы не можете этого сделать. Возможно, просто извлеките самый новый файл из master в feature напрямую вместообъединить их будет лучше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...