适用于Windows 2.x的Git中的UTF-16支持

时间:2016-11-20 14:17:35

标签: git encoding utf-8 ssms utf-16

我在一个开发项目团队中工作,该项目包括在SQL Server Management Studio(SSMS)中创建的文件。 SSMS的默认文件编码为:代码页1200(Little-endian UTF-16)

Git for Windows将这些文件识别为二进制文件。它无法显示文件的差异视图,也无法合并文件(远程合并覆盖本地版本)。

我们可以轻松更改SSMS中的默认编码。但是,我们不希望有任何UTF-16文件被提交的风险 - 因为它们会在我们的源代码控制和释放管理进程中造成破坏。

This stack overflow post使用GnuWin32的两个工具iconvfile介绍了如何使用Clean / Smudge过滤器在提交时动态转换UTF-16文件为UTF-8。

这很好用,我们已经在msysgit 1.9.5预览中使用了很长时间。但是,此版本已弃用,较新的Git具有越来越多的功能,我们需要团队合作。问题是此解决方法依赖于更新两个文件:Git\etc\gitattributesGit\etc\gitconfig。 Git for Windows 2.x

中不存在这两个文件

如何向Git 2.x添加UTF-16支持?通过调整Git 1.x所描述的解决方法或通过任何其他方式。

2 个答案:

答案 0 :(得分:3)

按如下方式配置系统范围内的2个文件(即所有用户和所有存储库):

gitconfig

在你的git for windows shell中:

git config --system --edit

gitattributes

git config --system core.attributesfile <path>
并使用您希望的任何路径

当然,如果您希望将范围缩小到全局(即仅针对特定用户的所有回购),请将--system替换为--global

相关问题:
Where should I place my global 'gitattributes' file?
Where do the settings in my Git configuration come from?
What is $(prefix) on $(prefix)/etc/gitconfig?

答案 1 :(得分:0)

创建全局gitattributesgitconfig可能是最好的方法。

Windows 2的Git基于MSYS2。这在某个地方有一个\etc目录。访问它的最佳方法可能是打开一个MSYS2 shell。