Я использую git (1.8.3) в Windows. Если я клонирую репозиторий из github, а затем немедленно проверяю другую существующую ветку в этом репо, git обнаруживает измененные файлы. Обычно. Иногда это не так. И разница во всех измененных файлах возвращается одинаковой (включая окончания строк). Эта проблема наблюдалась в 2 разных репозиториях как минимум на 4 разных компьютерах в моей команде.
И это не всегда одни и те же файлы, но почти всегда это одно из нескольких подмножеств файлов в репозитории. Например, иногда одни и те же 5 файлов в корне репозитория, иногда те же 93 файла в одной конкретной папке, иногда те же 16 файлов в другой папке.
Как только git помечает файлы как измененные, если я возвращаю их или прячу, они сразу же снова помечаются как измененные, что делает невозможным переключение между ветвями.
У меня такое ощущение, что это связано с окончаниями строк, но я уже добавил рекомендуемый файл .gitattributes и перенормировал каждую ветку, но у меня все еще есть эти спорадические проблемы. Другая возможность, о которой я думал, заключается в том, что слияние между ветвями каким-то образом испортило перенормировку, которую я сделал, но я не знаю, как проверить эту теорию.
У всех нас есть core.autocrlf=true
, так как мы все на Windows. Вот наши .gitattributes
# Auto detect text files and perform LF normalization
* text=auto
# Custom for Visual Studio
*.cs diff=csharp
*.sln merge=union
*.csproj merge=union
*.sqlproj merge=union
*.html text diff=html
*.css text
*.js text
*.ejs text
*.sql text
# Standard to msysgit
*.doc diff=astextplain
*.DOC diff=astextplain
*.docx diff=astextplain
*.DOCX diff=astextplain
*.pdf diff=astextplain
*.PDF diff=astextplain