Die Erweiterung allein reicht GitHub nicht aus, um festzustellen, ob es sich um eine Textdatei handelt.
Also muss es sich seinen Inhalt ansehen.
Und wie unter " Warum behandelt Git diese Textdatei als Binärdatei? " Erwähnt , enthält der Inhalt möglicherweise nicht genügend ASCII-Zeichen, um zu vermuten, dass es sich um eine Textdatei handelt.
Sie können eine .gitattributes-Datei verwenden, um explizit anzugeben, dass a .sql
ein Text und keine Binärdatei sein soll.
*.sql diff
Update 2018: Wie ich in " Utf-8-Codierung funktioniert nicht mit utf-8-codiertem Dokument " erwähne, hat Git 2.18 .gitattributes ein neues working-tree-encoding
Attribut.
So, wie in gezeigt Rusi ‚s Antwort :
*.sql text working-tree-encoding=UTF-16LE eol=CRLF
Wie kostix in den Kommentaren hinzufügt :
Wenn diese Dateien vom Microsoft SQL Management Studio generiert werden (oder wie auch immer es in der Version der von Ihnen verwendeten MS SQL Server-Verwaltungstools heißt), werden die gespeicherten Dateien in UCS-2 (oder UTF-16) codiert - a Zwei-Byte-Codierung, die in den Augen von Git in der Tat kein Text ist
Sie können ein Beispiel in " Git sagt" Binary files a… and b… differ
für *.reg
Dateien "sehen.
Wie in " Datei als nicht binär in git festlegen " erwähnt:
"Warum markiert Git meine Datei als binär?" Die Antwort ist, dass irgendwo innerhalb der ersten 8000 Zeichen der Datei ein NUL (0) -Byte angezeigt wird.
Dies geschieht normalerweise, weil die Datei als etwas anderes als UTF-8 gespeichert wird. Es wird also wahrscheinlich als UCS-2, UCS-4, UTF-16 oder UTF-32 gespeichert. Alle diese haben NUL-Zeichen eingebettet, wenn ASCII-Zeichen verwendet werden
Wie Neo erwähnt in den Kommentaren (und warum diese Textdatei als Binärdatei ist Git behandeln? ):
Sie können die Codierung einer in SSMS gespeicherten Datei in UTF-8 ändern, indem Sie im Menüpunkt "Datei" im Menü "Erweiterte Speicheroptionen" die Option "UTF-8 mit Signatur" auswählen.