我有一个包含Unicode符号(俄语文本)的文件。
当我更正拼写错误时,我使用git diff --color-words=.
命令查看所做的更改。
对于Unicode(西里尔字母)符号,我会遇到一些带有尖括号的混乱情况,如下所示:
$ cat p1
привет
$ cat p2
Привет
$ git diff --color-words=. --no-index p1 p2
diff --git 1/p1 2/p2
index d0f56e1..d84c480 100644
--- 1/p1
+++ 2/p2
@@ -1 +1 @@
<D0><BF><9F>ривет
看起来 git diff --color-words=.
检查的是字节之间的差异,而不是我期望的符号之间的差异。
有没有办法告诉 git
正确处理 Unicode 符号?
更新 关于我的环境:我在 Mac OS 和 Linux 主机上得到相同的结果。
我的 shell 变量是:
BASH=/bin/bash
HOSTTYPE=x86_64
LANG=ru_RU.UTF-8
OSTYPE=darwin10.0
PS1='\h:\W \u\$ '
SHELL=/bin/bash
SHELLOPTS=braceexpand:emacs:hashall:histexpand:history:interactive-comments:monitor
TERM=xterm-256color
TERM_PROGRAM=iTerm.app
_=-l
我已将Git配置重置为默认设置,方法如下:
$ git config -l
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
core.ignorecase=true
Git 版本
$ git --version
git version 1.7.3.5
git diff
显示 "<>",而是默认分页程序less
显示的。尝试导出LESSOPTS=-R
或LESSOPTS=-RX
看看是否有帮助。此外,你的问题存在一个问题:你没有提供任何关于你的环境信息。 - kostix$ git config --global core.pager "less -R"
,但这并没有帮助。 - chestozo$ GIT_PAGER='' git diff --no-index --color-words=. p1 p2
你好
$ GIT_PAGER='' git diff --no-index --color-words=. --no-color p1 p2
你好
- chestozo