一尘不染

我可以让 git 将 UTF-16 文件识别为文本吗?

git

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

可以教 git 识别这个文件是文本并适当地处理它吗?

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


阅读 100

收藏
2022-07-16

共1个答案

一尘不染

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

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

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

发现“difftool”太长而无法输入?没问题:

$ git config --global alias.dt difftool
$ git dt commit1 commit2
2022-07-16