Предположим, у меня есть папка git в /d/projects/project01
.
Когда я делаю git status
в Git Bash и git status
в msys2, он выдает разные результаты (изображение ниже)
Почему это произошло, и вы могли бы заставить эти 2 работать одинаково?
Я считаю, что git в MSYS2 иногда путается с файлами, в которых были изменены окончания строк. Вы можете попробовать сделать коммит, и вы, вероятно, обнаружите, что эти изменения просто исчезают. Вы также можете прочитать об опциях git, таких как autocrlf
.
Проверьте вывод git config core.autocrlf
в обоих сеансах.
Если это значение false в git bash, но не в mingw2, установите для него значение false во втором сеансе mingw2:
git config --global core.autocrlf false
core.autocrlf
следует считать устаревшим. Этот репозиторий — и все репозитории — нужен .gitattributes
. edwardthomson.com/blog/…@EdwardThomson Да, я много лет говорил об этом в Stack Overflow. (например, 2010: stackoverflow.com/a/2517442/6309)
Я знаю! Вот почему я был так удивлен, прочитав ваш ответ! :D
@EdwardThomson Мой ответ — просто начать и убедиться, что для core.autocrlf
установлено значение false в обеих средах. Тогда мы можем перейти к .gitattributes
он возвращает true
в Git Bash и ничего в msys2 (кажется, это неявно, что в msys2 core.autorlf = false)
@Luke Можете ли вы ввести git config --global core.autocrlf false
в обоих сеансах, затем снова клонировать свой репозиторий и посмотреть, сохраняется ли проблема?
@vonc теперь работает точно так же, большое спасибо.
Можете ли вы отредактировать свой вопрос, чтобы показать, что
git rev-parse --show-toplevel
выводит в каждом каталоге?