我在 git 中跟踪一个 Virtual PC 虚拟机文件 (*.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,但运行您选择的差异程序而不是内置的 GNU diff。所以选择一个多字节感知差异(在我的例子中,vim在差异模式下)并使用git difftool而不是git diff.
git difftool
git diff
diff
vim
发现“difftool”太长而无法输入?没问题:
$ git config --global alias.dt difftool $ git dt commit1 commit2