Операция не может быть выполнена, так как PROJECTNAME имеет один или несколько конфликтов дерева

Я использую Git, и когда я попытался вытащить более новую ветку разработки с моей текущей веткой, используя меню управления версиями XCode, я получил это сообщение об ошибке:

The operation could not be performed because "ProjectName" has one or more tree conflicts.

Как разрешить эти конфликты деревьев? Спасибо


person Tony Pham    schedule 03.05.2013    source источник
comment
дубликат? stackoverflow.com/questions/14624209/   -  person 1615903    schedule 03.05.2013


Ответы (5)


В файле проекта есть конфликт, который вам нужно извлечь с помощью командной строки или инструмента с графическим интерфейсом, такого как SourceTree (бесплатно), и вручную разрешить конфликт в текстовом редакторе или инструменте сравнения.

См. также: Как правильно использовать Git с XCode?

person GayleDDS    schedule 04.05.2013
comment
Конфликты дерева, о которых сообщает Xcode, — это не то же самое, что конфликты слияния с файлом. Обычно при выполнении слияния через Xcode он предупреждает вас о конфликтах слияния и предоставляет пользовательский интерфейс для их разрешения. Однако, когда возникают конфликты деревьев, он просто предупреждает вас о них и не предоставляет способа их разрешения. Смотрите ответ от lynulzy ниже, чтобы узнать, как исправить конфликты деревьев. - person Drew C; 01.02.2017

Я был в беде с этой проблемой. Это часто происходит, когда я удаляю или изменяю directory проекта. Например, когда я перемещаю один каталог в другой существующий каталог, оба каталога являются реальными папками, предупреждение будет существовать.

На самом деле значение tree conflict заключается в том, что уровень каталога в вашем рабочем репозитории не такой, как на сервере.

Это мой способ решить эту проблему:

  1. Проверьте, какой каталог в вашем локальном рабочем репозитории отличается от репозитория сервера.
  2. Если в локальном репозитории есть лишний каталог Удалить(локальный) -> обновить -> ОК , если в локальном репозитории чего-то не хватает и лишние элементы на сервере не нужны, Удалить (сервер) -> обновить. NOTE После этого конфликта дерева больше не существует.

Надежда помогает.

person lynulzy    schedule 28.08.2015
comment
Это должен быть принятый ответ. Конфликты деревьев, о которых идет речь, не совпадают с конфликтами слияния в файле. - person Drew C; 01.02.2017

У меня была аналогичная проблема. Поэтому я открыл окно терминала и перешел в каталог, проверил, что моя ветка чистая с помощью git status, изменился на master с помощью git checkout master и объединил свою ветку с git merge push-notifications. Ветвление в Git — базовое ветвление и слияние страница объясняет это подробно.

person kometen    schedule 14.08.2016

Для меня эта ошибка возникла, когда Xcode запутался, на какой ветке в данный момент находился проект. Поэтому я решил это, переключив ветку на master, а затем снова вернувшись к прежней ветке. Итак, сначала попробуйте это простое решение.

person turingtested    schedule 24.04.2017
comment
Как бы странно это ни звучало, это решение сработало для меня. Все, что я сделал, это переключился на ветку (master), с которой я хотел объединиться. Затем объедините ветку разработки, над которой я работал, с веткой master. На этот раз ошибка дерева не отображалась. Кажется, что Xcode предпочитает, чтобы вы переключились на ветку, в которую вы хотите слиться, перед слиянием. - person skymook; 16.08.2018

Моя ситуация. Слияние основной ветки с небольшими изменениями в мою текущую разрабатываемую или рабочую версию. Я решил эту проблему:

  1. Перемещение разрабатываемого файла с конфликтом дерева на мой рабочий стол (т.е. из каталога, контролируемого репозиторием).
  2. Выполнение самой разрабатываемой версии.
  3. Повторно выполните слияние из мастера в самую последнюю версию.
  4. Решены фактические конфликты слияния.
  5. Подтверждено, что файл, который был объединен из основного в ветку разработки, был там и был правильным.
person Jacksonsox    schedule 27.10.2017