Git показывает мне, что весь файл изменяется, когда я не могу понять изменения. Это cygwin git, но это также происходит в msysgit
$ git --version
git version 2.1.1
$ diff <(git show HEAD:File.cs) <(cat File.cs)
// Shows no differences
$ diff <(git show HEAD:File.cs | xxd) <(xxd File.cs)
// Shows no differences
$ git diff
// shows the entire file has changed
$ git hash-object <(git show HEAD:File.cs)
7b3762473342a5b040835bfef9f6b45c109ba48b
$ git hash-object <(cat File.cs)
7b3762473342a5b040835bfef9f6b45c109ba48b
$ git hash-object File.cs
7b3762473342a5b040835bfef9f6b45c109ba48b
У меня
$ git config --get core.fileMode
false
и
$ git config --get core.autocrlf
true
Я действительно не знаю, что происходит, все хочет, чтобы они были одинаковыми, но git хочет создать фиксацию, говорящую, что все содержимое было удалено и воссоздано. Кто-нибудь, кто знает, что git сантехника лучше имеет предложение?. Все, что я могу представить, это git show - удаление/нормализация нечетных окончаний строки.
UPDATE:
Я уверен, что это происходит потому, что процесс разработки такой. Оформить заказ от git, rsync до dev машины, разработать, rsync обратно. Я считаю, что rsync возится с концами строк. Это просто странно, что gits не сообщают о концах строк, и кажется, что он действительно запутался в том, что, черт возьми, происходит. Хотя отличие двоичного представления файлов кажется одинаковым.
ОБНОВЛЕНИЕ 2:
Так что это очень раздражает, и я чувствую, что наткнулся на ошибку в git.
Например
$ git gc
$ git checkout -- .
$ git clean -fd
$ git status
> shows a heap of modified files
Я уверен, что не должен показывать никаких изменений, независимо от того, где его запускают, но я получаю список из 20 странных вещей: (