Одного расширения GitHub недостаточно, чтобы определить, является ли это текстовым файлом.
Поэтому он должен смотреть на свое содержание.
И как упоминалось в разделе « Почему Git рассматривает этот текстовый файл как двоичный файл? », Его содержимое может не включать достаточное количество символов ascii, чтобы предположить, что это текстовый файл.
Вы можете использовать файл .gitattributes, чтобы явно указать, что это .sqlдолжен быть текст, а не двоичный файл.
*.sql diff
Обновление 2018: как я упоминал в статье « Кодировка Utf-8 не работает с документом в кодировке utf-8 », Git 2.18 .gitattributes имеет новый working-tree-encodingатрибут.
Таким образом, как показано на руси «S ответ :
*.sql text working-tree-encoding=UTF-16LE eol=CRLF
Как добавляет kostix в комментариях :
если эти файлы создаются Microsoft SQL Management Studio (или как там она называется в используемой вами версии инструментов управления MS SQL Server), файлы, которые она сохраняет, кодируются в UCS-2 (или UTF-16) - двухбайтовая кодировка, которая действительно не является текстом в глазах Git
Вы можете увидеть пример в " Git говорит" Binary files a… and b… differ"для *.regфайлов »
Как упоминалось в разделе « Установить файл как небинарный в git »:
«Почему Git отмечает мой файл как двоичный?» Ответ заключается в том, что он видит байт NUL (0) где-то в пределах первых 8000 символов файла.
Обычно это происходит из-за того, что файл сохраняется не в формате UTF-8. Таким образом, он, вероятно, сохраняется как UCS-2, UCS-4, UTF-16 или UTF-32. Все они имеют встроенные символы NUL при использовании символов ASCII.
Как упоминает Нео в комментариях (и в Почему Git рассматривает этот текстовый файл как двоичный файл? ):
Вы можете изменить кодировку сохраненного файла в SSMS на UTF-8, выбрав кодировку «UTF-8 с подписью» в пункте меню «Дополнительные параметры сохранения» в меню «Файл».