Подтвердить что ты не робот

Управление исходным кодом Xcode 8 не показывает конфликтов

После того, как Xcode обновился до версии 8.0 (8A218a), у меня возникла проблема с переносом изменений из репозитория git из Xcode только, когда некоторые файлы конфликтуют. Мы все работаем над одной ветвью.

Пока конфликтов нет, все работает отлично, и я могу совершать, тянуть и толкать.

Но я понял, что всякий раз, когда у нас есть конфликт в некоторых файлах, Xcode больше не показывает конфликты. Он просто закрывает всплывающее окно pull, не показывая окно разрешения конфликта. Нет информации или что-то еще. Я не вижу

Удалите

сообщение. И я не могу нажать мою фиксацию (потому что изменения не вытягиваются), получая сообщение:

Убедитесь, что все изменения были извлечены из удаленного репозитория и повторите попытку

Я попытался потянуть с помощью терминала, но конфликтующий файл перепутался с сообщениями git, отображающими мои и другие люди в одном конфликтующем файле по этим сообщениям git. И файлы, над которыми работали другие люди, теперь показаны как мои собственные изменения/дополнения.

Я также попробовал обновить git до последней версии, которая в настоящее время 2.10.0. Не повезло.

Итак, я в итоге удаляю свою копию и клонирую последнюю и повторно использую изменения, которые я сделал, что очень раздражает.

У кого-нибудь есть решение для этого?

EDIT: Вот что вы можете сделать как обходной путь с помощью терминала:

  • Откройте терминал и сообщите системе, в которой живут утилиты Xcode:

    sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer
    
  • Установите "opendiff" как глобальный метод mergetool по умолчанию:

    git config --global merge.tool opendiff
    
  • Откройте Xcode mergetool вручную и избавитесь от конфликта обычным способом:

    git mergetool
    
  • Сохранить изменения, зафиксировать, нажать.

4b9b3361

Ответ 1

Я использую git в терминале для решения этой проблемы, используется mergetool. Fisrt, я делаю некоторые изменения, но упс, не обновляюсь:

git fetch origin
git pull origin master

From ssh://[email protected]:22/projectname
 * branch            master     -> FETCH_HEAD
Updating a030c3a..ee25213
error: Entry 'filename.c' not uptodate. Cannot merge.

Итак, обновляйтесь и повторите попытку, но у вас есть конфликт:

git add filename.c
git commit -m "made some wild and crazy changes"
git pull origin master

From ssh://[email protected]:22/projectname
 * branch            master     -> FETCH_HEAD
Auto-merging filename.c
CONFLICT (content): Merge conflict in filename.c
Automatic merge failed; fix conflicts and then commit the result.

Итак, я решил посмотреть на изменения:

git mergetool

использовать mergetool для слияния конфликта

changes...no...their changes...
git checkout --ours filename.c
git checkout --theirs filename.c
git add filename.c
git commit -m "using theirs"

И затем мы попробуем последний раз

git pull origin master

From ssh://[email protected]:22/projectname
 * branch            master     -> FETCH_HEAD
Already up-to-date.

answer from: Как разрешить конфликты слияния в Git?

Ответ 2

Следующая последовательность действий разрешает эту проблему:

Выход Xcode

Открыть терминал и cd в папке проекта

git checkout -.

git pull

Посмотрите на вывод команды pull. Он должен объявить, что есть конфликт в одном из файлов. Откройте этот файл во внешнем редакторе (не Xcode). Теперь файл должен содержать специальные маркеры, описывающие конфликт (они были добавлены GIT) Маркеры выглядят так:

<<<<<<< HEAD:file.txt
Hello world
=======
Goodbye
>>>>>>> 77976da35a11db4580b80ae27e8d65caf5208086:file.txt

Удалить маркеры и разрешить конфликт

git добавить [имя файла]

git commit -m "конфликт в [имя файла] разрешен"

git нажмите

Ответ 3

Обновите Xcode 8.2.1

У меня была такая же проблема. Но она разрешена после обновления моей версии Xcode до 8.2.1.

Я разрешил все конфликты сегодня, с которыми я столкнулся с Xcode Version 8.1.

Ответ 4

обновите свой Xcode до последней версии и убедитесь, что у ваших партнеров тоже один и тот же

Ответ 5

Случается ко мне еще в Xcode 8.1, используя Github.

Выполнение git fetch в терминале, а затем вытаскивание из Xcode снова, похоже, исправляет проблему для меня.