Наличие некоторых проблем с отменой git слияния. Что произошло:Отмена нескольких слияний в git
- Оба вопроса и бета-версия разветвлены от мастера, но тема разветвлена позже бета-версии.
- Разработчик 1 (D1) вносит изменения в бета
- Developer 2 (D2) создает тему ветки, делает несколько фиксаций и объединить его в бета
- При слиянии D2 получает конфликты, так как B и C имеет изменения в то же файлы, как D, E и F
- D2 выбирает изменения в тему отрасли, делая GIT проверку --theirs & мерзавец добавить/совершить
- D2 толкает его изменения происхождения
- D2 делает другой фиксации, объединяет его, затем другая фиксация и слияние тоже (без проблем)
- D2 толкает эти изменения происхождения слишком
- D1 бежит мерзавец тянуть
D1 жалуется, что изменения, которые он сделал на бета были перезаписаны
X---D---E---F---M1--M2--M3 beta / /// / X---X---X---X---X topic / / A---B---C---X---X master
Я прочитал некоторые StackOverflow вопросов и спросили # git и закончил работу git revert -m 1 M3, git revert -m 1 M2 и git revert -m 1 M1. D1 был счастлив, что его изменения вернулись.
Теперь я подумал, что смогу git слить тему на бета-версию, но на этот раз выбрать git checkout --ours, но я не мог, потому что ничего не случилось. Я читал https://www.kernel.org/pub/software/scm/git/docs/howto/revert-a-faulty-merge.txt, но все еще не понимаю всего 100%.
Я закончил тем, что перезапустил всю мою тему, зафиксировав только одну фиксацию, которую я мог бы затем объединить в бета-версию.
Что мне интересно, если есть более простой способ решить эту проблему?
Итак, чтобы быть ясным, 'git checkout -b wip M1^1; git merge M1^2', чтобы создать правильный результат слияния, затем 'git merge -s ours M1', чтобы получить правильную базу слияния, тогда это простой' git checkout -B beta M3; git merge wip'. – jthill
Я не уверен о шаге 'git merge -s ours M1', но это может сработать. Хотя кажется, что создается несколько дополнительных коммитов, которые будет трудно отследить. – Schleis
Я помню, что сообщение о фиксации слияния имело файлы, у которых были конфликты, но они смотрели на 'git log', теперь он только говорит« Объединить ветку »в бета-версию. – Marlun