Zmiana jednego znaku w pliku prowadzi do MSysGit, myśląc, że cały plik się zmienił

Mam repozytorium git zawierające kod C # i pracujęMSysGit w systemie Windows.

core.autocrlf jest włączony i używam.gitattributes zto pytanie, i „renormalizowałem” moje repo, jak wspomniano na doleten przewodnik Github.

Teraz dlatrochę z.cs pliki w moim repozytorium, jeśli zmienię nawet jedną postać,MSysGit uważa, że ​​cały plik się zmienił.

Sklonowałem składowisko świeże. Próbowałem najpierw edytować plik w Visual Studio, ale potem próbowałem go otworzyćSciTE który pokazuje mi kończące linię i znaki tabulacji, a także ufam, że nie zrobi nic dziwnego w pliku (jak zmiana kodowania).

Sklonowałem więc repozytorium:

$ git clone git clone [email protected]:my-repo.v2.git
$ cd my-repo/

Sprawdzam repozytorium i plik:

$ git status
# On branch master
nothing to commit (working directory clean)
$ git diff path/to/myfile.cs
$

Otwieram plik w SciTE (zauważ, że końcówki linii sąCRLF i nie ma zakładek):

using System;
using System.Collections.Generic;
...

i zmień jedną postać (i zauważ toCRLF i żadne karty nie są jeszcze prawdziwe):

using System;
!using System.Collections.Generic;
...

a teraz git myśli, że wszystko się zmieniło:

$ git diff path/to/myfile.cs
diff --git a/path/to/myfile.cs b/Dpath/to/myfile.cs
--- a/path/to/myfile.cs
+++ b/path/to/myfile.cs
@@ -1,116 +1,116 @@
-<U+FEFF>using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using Microsoft.Practices.EnterpriseLibrary.Data;
-using DataModel.Models;
-using DataModel.Mappers.Interfaces;
-using System.Data.Common;
-using System.Data;
...

Normalny program różnicujący nie uważa, że ​​te dwa pliki są tak różne igit diff w Uniksie nie są zbyt różni, alemsysgit robi.

Czy ktoś kiedykolwiek spotkał się z tym wcześniej lub miał jakieś pomysły?

questionAnswers(1)

yourAnswerToTheQuestion