我能让git识别一个UTF-16文件作为文本吗?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (58)

我正在跟踪一个虚拟PC虚拟机文件(*(Vmc)中的.vmc),在进行更改后,git将文件标识为二进制文件,不会为我区分它。我发现文件是用UTF-16编码的。

GIT能被教导认识到这个文件是文本并正确地处理它吗?

我在Cygwin下使用git,并将core.autocrlf设置为false。如果有必要,我可以在UNIX下使用mSysGit或git。

提问于
用户回答回答于

我已经为这个问题挣扎了一段时间,并发现(对我来说)一个完美的解决方案:

$ git config --global diff.tool vimdiff      # or merge.tool to get merging too!
$ git difftool commit1 commit2

git difftool采取相同的参数git diff,而是运行选择的diff程序,而不是内置的gdu。diff。所以选择一个多字节感知的差异(在我的例子中,vim(在diff模式下),只需使用git difftool而不是git diff

找到“扩散工具”太长,无法打字?没问题:

$ git config --global alias.dt difftool
$ git dt commit1 commit2
用户回答回答于

有一个非常简单的解决方案,可以找到。

例如,苹果的.strings文件只是:

  1. 创建一个.gitattributes在存储库的根目录中使用以下文件:*字符串diff=localizablestring
  2. 将以下内容添加到~/.gitconfig档案:diff“localizablestring”textconv=“conv-f utf-16-t utf-8”

扫码关注云+社区