Git pokazuje mi, że cały plik został zmieniony, kiedy nie mogę wymyślić zmian. To Cygwin git, ale zdarza się w msysGitGit pokazujący identyczne pliki jako zmienione
$ 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
mam
$ git config --get core.fileMode
false
i
$ git config --get core.autocrlf
true
ja naprawdę nie mam pojęcia, co się dzieje, wszystko chce im się być tak samo, ale git chce utworzyć commit mówiąc, że cała zawartość została usunięta i odtworzona. Czy ktokolwiek, kto zna git hydraulika, ma lepsze sugestie? Wszystko, co mogę wymyślić to, że git show usuwa/normalizuje dziwne zakończenia linii.
UPDATE:
jestem całkiem pewny, jego dzieje, ponieważ proces rozwoju jest tak. Kasy z git, rsync na dev, rozwijaj, rsync z powrotem. Wierzę, że rsync ma problemy z niektórymi końcówkami linii. To dziwne, że gitary nie donosiły o końcach linii i wydaje się, że naprawdę nie rozumieją, co się do cholery dzieje. Mimo że różnice w binarnej reprezentacji plików wydają się identyczne.
UPDATE 2:
Więc to jest bardzo irytujące, i czuję, że natknęliśmy się na błąd w git.
Na przykład
$ git gc
$ git checkout -- .
$ git clean -fd
$ git status
> shows a heap of modified files
Jestem pewien, że powinien pokazać żadnych zmian, bez względu na to, gdzie jego bieg, ale dostaję listę 20 dziwnych rzeczy :(
Czy widzisz to samo z 'git config --get core.autocrlf false'? – VonC
Tak samo. Nawet upewniłem się, że mogę to naprawić za pomocą 'git rm --cached. -r' i 'git reset --hard'. Następnie uruchomiłem go za pomocą narzędzi programistycznych, przejdź do "statusu git" i przekonałem się, że cały plik "zmienił się". Zgadzam się, że mój proces zmienia pliki (wyobrażam sobie zakończenia linii), ale chcę, żeby git naprawdę mi powiedział. Dezorientuje mnie to bez końca, szczególnie biorąc pod uwagę to, że wynik hash-object jest taki sam. –
Jakiego systemu operacyjnego i jakiej wersji Git używasz? – VonC