由于 Windows 下使用各地区本地的编码方案,而 Linux 下统一使用更加国际化的 Unicode 编码,中文字符在不同编码混杂时往往面临窘境。想要在 Git 中使用中文也要作一些配置。
最好的方式当然是以全英文的方式使用 Git,但如果我们需要使用中文书写提交说明或者管理中文文档,统一使用 UTF-8 的编码是较好的选择。
一、不同环境采用的编码方案
1.1 Git Bash
Git Bash 是官方的 Git for Windows 提供的在 Windows 下使用 Git 的 Linux 环境。Git Bash 在默认设置下使用本地编码,即使用 echo
输出的,和使用 cat
能够查看的编码都是 GB2312。可以更改设置来使用 UTF-8 编码,方法是右键单击标题栏,选择 Options -> Text,其中 Locale 选择 C,Character set 选择 UTF-8。此时仍有两个问题需要解决。一是 Windows 下中文文件名时使用本地编码的,所以使用 ls
查看文件名包含中文的文件时会仍出现乱码,解决的办法是使用 ls
时添加 --show-control-chars
参数,可以为此设置一个别名:
alias ls='ls -F --color=auto --show-control-chars'
- 1
二是 git log
输出时默认用 less
作分页工具,所以还要让 less
也显示 UTF-8 编码:
export LESSCHARSET=utf-8
- 1
以上两条设置在 Git Bash 关闭后似乎也会保留,保险起见,可以把它们添加到 C:\Program Files\Git\etc\profile
文件中,此处假设你使用了默认的安装路径。
在 Git Bash 中使用 Git,我们还需要对 Git 本身进行一番设置来支持 UTF-8 编码。
git config --global core.quotepath false # 显示 status 编码
git config --global gui.encoding utf-8 # 图形界面编码
git config --global i18n.commit.encoding utf-8 # 提交说明编码
git config --global i18n.logoutputencoding utf-8 # 输出 log 编码