2015-07-21 11 views
14

Ich habe versucht, diese zu dem .gitattributes:Wie kann ich Git Änderungen an meinen .SQL-Dateien anzeigen lassen?

* text=auto 
*.sql diff 

Aber es zeigt immer noch diesen wie:

BIN  WebRole/Sql/Objects/dbo.Content.Table.sql → 
WebRole/Sql/dbo.Content.Table.sql Binary file not shown 

mit dieser Hilfe schätzen würde.

+3

Haben Sie tatsächlich eine Großbuchstabe "A" in der Schreibweise Ihrer .gitAttributes-Datei. Dies könnte bei einem Dateisystem mit Unterscheidung zwischen Groß- und Kleinschreibung einen Unterschied machen. Git buchstabiert normalerweise diesen Dateinamen '.gitattributes'. – Wolf

+1

Ich denke du meinst Git, nicht GitHub, richtig? – bitoiu

+0

Ich benutze Git, aber es ist der GitHub-Bildschirm, der mir die obige Nachricht zeigt. –

Antwort

4

Git schätzt normalerweise richtig, ob ein Blob Text oder Binärdaten enthält, indem er den Anfang des Inhalts untersucht. In Ihrem Fall wird Git jedoch verwirrt und behandelt die Datei als binär, möglicherweise aufgrund von Binärdaten irgendwo in der Datei.

Aus dem git-diff manpage:

-a, --text 
     Treat all files as text. 

So können Sie immer noch den Text diff erhalten ganz einfach wie folgt:

git diff -a WebRole/Sql/Objects/dbo.Content.Table.sql 

Um git falsche Vermutung fügen Sie die überschreiben folgende .gitattributes im selben Verzeichnis wie die Datei:

* .sql diff

und diese Datei speichern. Dies zwingt Git dazu, jede .sql-Datei von nun an als Text zu behandeln, egal ob es Binärdaten enthält oder nicht.

6

GitHub kann sehr gut entscheiden, wie es sein diff verwaltet (zum Beispiel haben sie benutzerdefinierte diffs für 3D renderings, maps oder images).

GitHub support können genau sagen, wie .sql Dateien behandelt und diffed sind.

Aber überprüfen Sie auch die Codierung Ihrer SQL-Dateien in Ihrem GitHub Repo.
Wie ich in "Why does git think my cs file is binary?" erwähnt habe, könnten UTF-16-Dateien problematisch sein.
Stellen Sie sicher, dass mindestens die SQL-Dateien in UTF-8 sind.

Verwandte Themen