Windows上的Git GUI无法将SQL(.sql)文件识别为文本文件

14

如果这个问题已经有答案了,请原谅我,因为我还没有找到答案:(

我正在使用 Windows 7 上的 SQL Server Management Studio 2008。

我右键单击任何存储过程、函数或对象,然后选择“修改”。
我单击“保存”并将文件保存到本地硬盘上的git仓库中。
我将文件保存为建议类型 = “Microsoft SQL Server Query File (.sql)”
所以现在我有一个文件,例如“MySproc.sql”,可以在SQL Management studio中很好地打开,但是当我使用Git GUI并进行“扫描”以查找修改后的文件时,它将我的新“ MySProc.sql”呈现为“*二进制文件(不显示内容)”。而不是简单的文本。

我尝试在记事本中打开文件并重新保存它,但是没有解决它。

非常感谢您提供的任何帮助。


可能是重复问题(尚未回答):https://dev59.com/m1HTa4cB1Zd3GeqPOhUc - Chris Shaffer
3个回答

14

仅供猜测,我认为你的.sql文件是UTF-16格式;如果你将它保存为UTF-8或ASCII格式,我相信git gui可以正确处理它。


当我在记事本中打开任何文件并“另存为”时,它显示文件编码为“ANSI”...请原谅我的无知,但我该如何查看文件的编码? - Andre
1
最好的选择是使用一个不错的文本编辑器。Notepad++和PSPAD是两个免费的选项,它们可以告诉你需要知道的一切。 - Tao
@Tao,@Andre:SQL Management Studio支持使用不同的编码进行保存。在“另存为”时,点击保存按钮上的向下箭头,然后选择“使用编码保存”。 - Jon Seigel
@Andre:请记住,如果存储库中原始文件为UTF-16,则新版本为UTF-8或ASCII将不会使比较工作。 如果这是问题所在,您最好使用另一个支持Unicode的比较工具。 - Chris Shaffer
1
在 SQL Management Studio 2012 中,选项是 文件 -> 高级保存设置。 - Danny Frencham

1

这很烦人,但我做的是在上传更改之前将扩展名更改为 .txt。我认为 .sql 扩展名是 git 出现问题的原因。

P.S. 如果您正在使用 SQL Server Management Studio,这里有一个宝贵的提示。右键单击数据库。从弹出菜单中选择“任务”,然后选择“生成脚本”。这将带您进入向导,您可以为数据库中的所有内容生成脚本。您可以将所有脚本输出到一个文件夹中。然后使用像 oscar's renamer 这样的程序,在提交更改之前将扩展名更改为 .txt。这是一种非常好的方式,可以将源代码控制(虽然手动)添加到您的数据库中。


1
你也可以使用PowerShell将文件转换为ASCII编码。
Get-Content Filename.sql | Out-File NewFileName.sql -Encoding ascii

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接