Это древняя тема, но так как правильный ответ так и не был найден, я добавлю свои 2 цента.
Одной из причин этой ошибки могут быть неотслеживаемые файлы, в частности субмодуль или файлы, которых нет в текущей ветке, но в предыдущей.
Например, при переключенииветке с подмодулем и обновлению такого подмодуля, он синхронизирует эти файлы с вашим репозиторием.Когда вы позже переключитесь на ветку, у которой нет такого подмодуля, он не будет добавлять или удалять их автоматически, но git поймет, что что-то не отслеживается в ветке.XCode также обнаруживает это всякий раз, когда вы переключаетесь в любой из режимов редактора версий: журнал, обвинение или сравнение.
В этом случае приглашение состояния git выдаст неотслеживаемые файлы:
On branch master
Your branch is up-to-date with 'origin/master'.
Untracked files:
(use "git add <file>..." to include in what will be committed)
yourSubmodule/
nothing added to commit but untracked files present (use "git add" to track)
Чтобы исправить это, вы можете просто удалить неотслеживаемые файлы с помощью rm , поскольку эти файлы не принадлежат этой ветви и могут быть синхронизированы из ветви, которая фактически указывает на подмодуль.Обратите внимание, что это относится к подмодулю, но если у вас есть новые файлы, вы должны вместо этого добавить их в хранилище или, альтернативно, добавить их в список игнорирования.После исправления проблемы состояние git должно быть чистым:
On branch master
Your branch is up-to-date with 'origin/master'.
nothing to commit, working directory clean
Читайте о подмодулях и проблем с их использованием .
Cheers!