【问题标题】:UTF-16 support in Git for Windows 2.xGit for Windows 2.x 中的 UTF-16 支持
【发布时间】:2016-11-20 14:17:35
【问题描述】:

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

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

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

This stack overflow post 描述了如何使用 Clean/Smudge 过滤器在提交时将 UTF-16 文件即时转换为 UTF-8,使用 GnuWin32 提供的两个工具:iconvfile

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

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

【问题讨论】:

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


    【解决方案1】:

    在系统范围内(即所有用户和所有 repos)配置 2 个文件,如下所示:

    gitconfig

    在你的 git for windows shell 中:

    git config --system --edit

    git 属性

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

    当然,如果您希望将范围缩小到全局(即仅针对特定用户的所有 repos),请将 --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?

    【讨论】:

    • 这太好了,谢谢。所以我仍然需要在清洁/涂抹过滤器中使用 iconvfile 来启用 utf-16 支持?我很惊讶这不是本机支持的。
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2020-03-22
      • 2014-11-14
      • 2022-11-10
      • 1970-01-01
      • 1970-01-01
      • 2015-04-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多