Ответ 1
Вы не указали, какую ОС вы используете, какую ОС использует ваш удаленный репо (если есть), или ваша команда работает кросс-платформенной с другими ОС. Такая информация может помочь диагностировать проблему.
Я видел проблемы, подобные этим, из-за:
-
line-endings (Windows vs Mac vs Linux)
Исправить это с помощью основных. * crlf settings и .gitattributes файлов. Страница справки github для этого и справочная страница gitattributes - это большие ресурсы для этого.
Попытка исправить линейные окончания с помощью git filter-branch, но не повезло https://help.github.com/articles/dealing-with-line-endings https://www.kernel.org/pub/software/scm/git/docs/gitattributes.html
Не пропустите часть в конце справки github, в которой говорится о том, как вы должны нормализовать свое репо после получения этой настройки:
После того, как вы установили параметр core.autocrlf и перенесли файл .gitattributes, вы можете обнаружить, что git хочет зафиксировать файлы, которые вы не изменили. Это связано с тем, что git хочет нормализовать окончание строк для вас. Лучший способ сделать это...
-
файловые системы без регистра, когда файлы /dirs с несогласованным случаем уже существуют
В частности, что
Src
dir выглядит особенно подозрительно для меня. Обычно это происходит потому, что кто-то переименовал файл в репо с тем же именем, но использовал другой случай для одной или нескольких букв. Затем кто-то обновляет локальное репо и рабочий каталог, git сообщает файловой системе (case-insenstive filesystem), что файл /dir уже существует, но другой git код будет обрабатывать файл /dir как новый.Попробуйте сделать новый клон в новый или пустой каталог. Посмотрите, отличаются ли имена букв имени/имени файла между путями проблемных файлов в вашем новом клоне и вашем исходном клоне (посмотрите в директории
Src
- это может бытьSrc
в репо. Если доступно, d сделать новый клон в системе Unix/Linux. -
Юникодовые символы в именах файлов
Это не похоже на вашу проблему, но я думал, что стоит упомянуть о полноте. Это вариант проблемы нечувствительности к регистру, но также влияет на то, как файловая система обрабатывает символы Unicode в именах файлов.
Смотрите Git очистить не удалять файл для описания проблемы, с которой кто-то еще сталкивался с Unicode в именах файлов.