我在git中跟踪一个Virtual PC虚拟机文件(*.vmc),在进行了更改后,git将该文件识别为二进制文件,并且不会为我区分它。我发现这个文件是用UTF-16编码的。
可以教git识别这个文件是文本并适当地处理它吗?
我在Cygwin下使用git,并将core.autocrlf设置为false。如果有必要,我可以在UNIX下使用mSysGit或git。
发布于 2009-08-19 15:55:47
我已经在这个问题上挣扎了一段时间,(对我来说)刚刚发现了一个完美的解决方案:
$ git config --global diff.tool vimdiff # or merge.tool to get merging too!
$ git difftool commit1 commit2
git difftool
采用与git diff
相同的参数,但运行的是您选择的不同程序,而不是内置的GNU diff
。所以选择一个多字节感知的diff (在我的例子中,在diff模式下是vim
),并且只使用git difftool
而不是git diff
。
发现"difftool“太长而不能输入?没问题:
$ git config --global alias.dt difftool
$ git dt commit1 commit2
Git太棒了。
发布于 2009-04-22 16:42:23
您是否已尝试将.gitattributes
设置为将其视为文本文件?
例如:
*.vmc diff
发布于 2013-04-02 16:37:01
我已经写了一个小的git-diff驱动程序,to-utf8
,它应该可以很容易地比较任何非ASCII 8编码的文件。您可以使用此处的说明进行安装:https://github.com/chaitanyagupta/gitutils#to-utf8 ( to-utf8
脚本可以在相同的代码库中找到)。
请注意,此脚本要求file
和iconv
命令在系统上均可用。
https://stackoverflow.com/questions/777949
复制相似问题