为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Git
凤凰求蛊 2019-08-26 11:06:08
我可以让git将UTF-16文件识别为文本吗?我在git中跟踪虚拟PC虚拟机文件(* .vmc),在进行更改后,git将该文件识别为二进制文件并且不会为我进行区分。我发现该文件是用UTF-16编码的。可以教git识别这个文件是文本并适当处理它吗?我在Cygwin下使用git,core.autocrlf设置为false。如果需要,我可以在UNIX下使用mSysGit或git。
查看完整描述

3 回答

?
MM们

TA贡献1886条经验 获得超2个赞

我一直在努力解决这个问题,并且刚刚发现(对我来说)一个完美的解决方案:


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

$ git difftool commit1 commit2

git difftool采用相同的参数git diff,但运行你选择的diff程序而不是内置的GNU diff。因此,选择一个多字节识别差异(在我的情况下,vim在diff模式下),而只是使用git difftool而不是git diff。


找到“difftool”太长,无法输入?没问题:


$ git config --global alias.dt difftool

$ git dt commit1 commit2

Git岩石。


查看完整回答
反对 回复 2019-08-26
?
POPMUISE

TA贡献1765条经验 获得超5个赞

git最近开始理解utf16这样的编码。请参阅gitattributes文档,搜索working-tree-encoding

[确保您的手册页匹配,因为这是一个全新的!]

如果(比方说)文件是在Windows机器上没有bom的utf-16那么添加到你的gitattributes文件

*.vmc text working-tree-encoding=UTF-16LE eol=CRLF

如果* nix上的utf-16(带有bom)就可以了

*.vmc text working-tree-encoding=UTF-16 eol=LF


查看完整回答
反对 回复 2019-08-26
  • 3 回答
  • 0 关注
  • 867 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信