我在一个开发项目团队中工作,该项目包括在SQL Server Management Studio(SSMS)中创建的文件。 SSMS的默认文件编码为:代码页1200(Little-endian UTF-16)。
Git for Windows将这些文件识别为二进制文件。它无法显示文件的差异视图,也无法合并文件(远程合并覆盖本地版本)。
我们可以轻松更改SSMS中的默认编码。但是,我们不希望有任何UTF-16文件被提交的风险 - 因为它们会在我们的源代码控制和释放管理进程中造成破坏。
This stack overflow post使用GnuWin32的两个工具iconv
,file
介绍了如何使用Clean / Smudge过滤器在提交时动态转换UTF-16文件为UTF-8。
这很好用,我们已经在msysgit 1.9.5预览中使用了很长时间。但是,此版本已弃用,较新的Git具有越来越多的功能,我们需要团队合作。问题是此解决方法依赖于更新两个文件:Git\etc\gitattributes
和Git\etc\gitconfig
。 Git for Windows 2.x
如何向Git 2.x添加UTF-16支持?通过调整Git 1.x所描述的解决方法或通过任何其他方式。
答案 0 :(得分:3)
按如下方式配置系统范围内的2个文件(即所有用户和所有存储库):
在你的git for windows shell中:
git config --system --edit
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)
创建全局gitattributes
和gitconfig
可能是最好的方法。
Windows 2的Git基于MSYS2。这在某个地方有一个\etc
目录。访问它的最佳方法可能是打开一个MSYS2 shell。