Window上git bash命令行中文乱码问题解决方案

乱码情景一:


    当使用git log 出现乱码时,修改 %GIT_HOME%\etc\gitconfig 文件,加入如下内容:

[gui]
     encoding = utf-8
[i18n]
    commitencoding = utf-8
[svn]
    pathnameencoding = gbk

 

  修改%GIT_HOME%\etc\profile文件,加入如下内容:

export LESSCHARSET=utf-8

 

  注意:一般来说export LESSCHARSET的值就是utf-8,如果profile文件中没有这一项,请加入。

 

乱码情景二:


   当使用vi/vim 查看带有文中内容的文件时出现乱码,修改 %GIT_HOME%\share\vim\vimrc文件,在文件末尾加入如下内容:

set fileencodings=utf-8,ucs-bom,cp936,big5
set fileencoding=utf-8
set termencoding=gbk

 

乱码情景三:


使用git bash,输入中文后出现乱码,修改%GIT_HOME%\etc\inputrc文件,加入:

set output-meta on
set convert-meta off

本人使用Git-1.9.4-preview20140611的时候,以上是默认配置,无需改动。

 

乱码情景四:


在git bash中使用ls命令的时候,如果目录和文件带有中文,则会出现乱码,修改%GIT_HOME%\etc\git-completion.bash文件,在文件末尾加入:

alias ls='ls --show-control-chars --color=auto'

 

乱码情景五:


使用git status的时候,出现乱码,可以通过执行如下命令解决:

git config --global core.quotepath false


当然,看个人习惯,也可以直接使用Eclipse git插件。

如果在Intellij IDEA里使用git bash的话,使用git branch -r 命令列出git分支时,如果分支名字带有中文名的话,显示出来的还是乱码,需要修改的bash.bashrc文件,在文件末尾追加:

export LANG="zh_CN.UTF-8"
export LC_ALL="zh_CN.UTF-8"

 

### Git Log 中文乱码问题Windows 下使用 Git 命令行工具时,如果查看 `git log` 或 `git diff` 的输出内容中包含中文字符,可能会出现乱码。这是由于 Git 默认使用 UTF-8 编码,而 Windows 命令行工具(如 CMD 或 PowerShell)默认使用 GBK 编码导致的。 #### 解决方法 1. **设置 Git Log 输出编码为 GBK** 为了在 `git log` 中正确显示中文字符,可以将 Git 的日志输出编码设置为 GBK: ```bash git config --global i18n.logoutputencoding gbk ``` 这个配置会确保 `git log` 命令输出的内容使用 GBK 编码,从而避免在 Windows 命令行工具中显示乱码问题[^1]。 2. **设置 Git Diff 输出编码为 GBK** 类似地,对于 `git diff` 命令,也可以通过设置 Git 的输出编码来避免乱码。虽然 Git 本身没有直接提供 `i18n.diffoutputencoding` 配置项,但可以通过设置 Git 的 `pager` 来间接实现。 在 Git 配置文件中添加以下内容: ```bash git config --global core.pager "less -r" ``` 这样可以确保 `git diff` 输出的编码保持原样,而不会被 Git 的分页器错误地转换。此外,还可以通过设置终端的编码为 UTF-8 来避免此类问题。 3. **调整终端编码为 UTF-8** 如果不想修改 Git 的输出编码,另一种方法是将 Windows 命令行工具的编码设置为 UTF-8。可以通过以下命令临时更改当前终端的编码: ```bash chcp 65001 ``` 这会将当前终端的编码切换为 UTF-8,从而兼容 Git 的默认输出编码。需要注意的是,这个设置只在当前终端会话中生效,重启终端后需要重新设置。 4. **修改文件名显示方式** 如果在使用 `git add` 或 `git status` 时出现中文文件名乱码(例如显示为 `\346\200\241\346\270\252\346\226\207\346\241\243.png`),可以禁用 Git 的文件名转义功能: ```bash git config --global core.quotepath false ``` 这会使得 Git 直接显示中文文件名,而不是将其转义为八进制形式[^2]。 ### 示例配置 以下是一个完整的示例配置,结合了上述提到的个解决方法: ```bash # 设置 git log 输出编码为 GBK git config --global i15n.logoutputencoding gbk # 设置 pager 为 less -r git config --global core.pager "less -r" # 禁用文件名转义 git config --global core.quotepath false ``` ### 总结 通过上述配置,可以有效解决在 Windows 下使用 Git 命令行工具时出现的中文乱码问题。如果仍然遇到乱码,建议检查终端的编码设置,或者尝试使用支持 UTF-8 编码的终端工具(如 Windows Terminal 或 ConEmu)。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值