У меня есть несколько файлов .sql, которые я только что впервые отправил на github. Однако, когда я смотрю на коммит, он говорит:
BIN WebRole/Sql/Database.sql View
Binary file not shown
Может кто-нибудь сказать мне, почему он говорит: "Двоичный файл не показан"
Ответы:
Одного расширения GitHub недостаточно, чтобы определить, является ли это текстовым файлом.
Поэтому он должен смотреть на свое содержание.
И как упоминалось в разделе « Почему Git рассматривает этот текстовый файл как двоичный файл? », Его содержимое может не включать достаточное количество символов ascii, чтобы предположить, что это текстовый файл.
Вы можете использовать файл .gitattributes, чтобы явно указать, что это
.sql
должен быть текст, а не двоичный файл.Обновление 2018: как я упоминал в статье « Кодировка Utf-8 не работает с документом в кодировке utf-8 », Git 2.18 .gitattributes имеет новый
working-tree-encoding
атрибут.Таким образом, как показано на руси «S ответ :
Как добавляет kostix в комментариях :
Вы можете увидеть пример в " Git говорит"
Binary files a… and b… differ
"для*.reg
файлов »Как упоминалось в разделе « Установить файл как небинарный в git »:
Как упоминает Нео в комментариях (и в Почему Git рассматривает этот текстовый файл как двоичный файл? ):
источник
iso
' этой команды dos2unix, чтобы узнать, помогает ли это: computerhope.com/unix/dos2unix.htmИспользуя принятый ответ из связанного вопроса и несколько других комментариев, я придумал это как решение проблемы, которое работает и работает на Win10.
источник
$Contents = Get-Content -LiteralPath $MyPath
На этот старый вопрос есть новый ответ - git недавно стал опцией
working-tree-encoding
именно по этим причинам. См. Gitattributes Документацию [Убедитесь, что ваша страница совпадает, поскольку это совсем недавно!]Узнайте кодировку файла sql, например, с помощью
file
Если (скажем) его utf-16 без бомбы на машине с Windows, добавьте в свой файл gitattributes
Если utf-16 little endinan (with bom) сделай это
источник
Для тех, кто борется с этой проблемой в SSMS для 2008 R2 (да, все же!), Вы можете установить кодировку по умолчанию следующим образом:
Расположение может отличаться. Это каталог, используемый при установке по умолчанию в 64-разрядной версии Windows 7.
Он используется в качестве шаблона для новых файлов .SQL. Сохраните его, используя нужную вам кодировку (в моем случае Windows-1252 с окончанием строки Windows). Стрелка справа от кнопки «Сохранить» позволяет выбрать кодировку.
Вам необходимо согласовать кодировки с вашей командой разработчиков, чтобы избежать проблем с git и SSMS.
источник
C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Binn\ManagementStudio\SqlWorkbenchProjectItems\Sql
C:\Program Files (x86)\Microsoft SQL Server\130\Tools\Binn\ManagementStudio\SqlWorkbenchProjectItems\Sql
Вот быстрое решение, которое сработало для меня с использованием SSMS 2012. В разделе tools => options => environment => international settings, если вы измените язык с «English» на «Same as Microsoft Windows» (может потребоваться перезагрузка SSMS, чтобы изменения вступили в силу), он больше не будет использовать UTF-16 в качестве кодировки по умолчанию для новых файлов - все новые файлы, которые я создаю, теперь имеют кодовую страницу 1252 (файл => расширенные параметры сохранения), что является 8-битной схемой кодирования и вроде бы нет проблем с
Git Diff
источник
Способ решить эту проблему - заставить файл использовать 8-битную кодировку. Вы можете запустить этот сценарий PowerShell, чтобы изменить кодировку всех файлов .SQL в текущем каталоге и его подкаталогах.
источник
[System.IO.File]::WriteAllLines($MyPath, $MyFile, $Utf8NoBomEncoding)