Git unmerged пути - PullRequest
       13

Git unmerged пути

7 голосов
/ 22 декабря 2009

У меня есть следующее git status, и мне нужно избавиться от двух плагинов ниже:

# Changed but not updated:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#   unmerged:   vendor/plugins/pluginA
#   unmerged:   vendor/plugins/pluginB

Проблема в том, что у меня есть репозиторий с несколькими ветками, который разделен между нами и клиентом:

master (клиентская версия кода)
производство (наша производственная версия кода)
разработка (наша версия кода для разработки)

В master были внесены изменения, которые нам нужно начать использовать, и мне нужно оставить production и development в покое. Я создал новую ветку «слияния» (на основе разработки) и слил код из мастера. К сожалению, это оставило нас с двумя проблемами плагинов выше. Они были удалены в master, но все еще находятся в ветви development. При объединении у меня были сообщения типа:

CONFLICT (каталог / файл): в HEAD есть каталог с именем vendor / plugins / pluginA. Добавление поставщика / плагинов / плагина A как поставщика / плагинов / плагина A ~ master

Так как я пытаюсь получить версию master, как я могу просто удалить плагины? Похоже, что большинство других удаленных файлов были объединены правильно.

Спасибо!

1 Ответ

10 голосов
/ 23 декабря 2009

Вы получили конфликт, потому что git обнаружил каталог (vendor/plugins/pluginA каталог в development), когда файл был найден в удаленном слиянии (vendor/plugins/pluginA file in master).

Поскольку невозможно объединить файл с каталогом, git создает копию основных данных в vendor/plugins/pluginA~master (чтобы избежать потери данных) и оставляет вас в конфликте, который необходимо разрешить вручную.

Переместите / переименуйте / удалите / скопируйте / отредактируйте / какие бы то ни было эти файлы, чтобы привести ваш код в нужное состояние, затем git add изменения и git commit разрешение конфликта.

...