Git中文乱码终极解决方案(git status / git log通用)
彻底解决 Git 日志、提交信息、文件名中文乱码问题,一键配置 + 终端设置,永久生效。
一、问题说明
执行 git log / git status 时出现:
- 八进制乱码:
\344\270\255\346\226\207 - 问号/乱码字符:
????、锟斤拷 - 文件名被转义,无法正常显示中文
根本原因:Git 默认编码与终端编码不统一、中文路径被转义。
二、一键永久配置(推荐,10秒解决)
打开 Git Bash / CMD / PowerShell,执行以下 3 条全局配置命令:
# 1. 禁止 Git 转义中文文件名/路径(解决 git status 乱码) git config --global core.quotepath false # 2. 设置 Git 日志输出编码为 UTF-8(解决 git log 提交信息乱码) git config --global i18n.logoutputencoding utf-8 # 3. 设置 Git 提交信息编码为 UTF-8(统一编码,避免兼容问题) git config --global i18n.commitencoding utf-8
配置验证
执行命令查看配置是否生效:
git config --global --list
显示以下内容即配置成功:
core.quotepath=false i18n.logoutputencoding=utf-8 i18n.commitencoding=utf-8
三、Git Bash 终端编码设置(配置后仍乱码必做)
配置 Git 后仍乱码,是终端未使用 UTF-8 编码导致,按以下步骤设置:
- 打开 Git Bash,右键标题栏 → 点击
Options - 左侧选择
Text:Character set选择:UTF-8Font选择:Microsoft YaHei/SimHei(支持中文的字体)
- 点击
Save保存,关闭并重启 Git Bash
四、Windows 系统终极修复(所有终端通用)
如果 CMD/PowerShell 中 Git 依旧乱码,开启系统 UTF-8 支持:
- 打开
控制面板→区域→管理→更改系统区域设置 - 勾选:
Beta 版:使用 Unicode UTF-8 提供全球语言支持 - 点击确定,重启电脑
五、临时解决方案(不修改配置,快速查看)
不想修改全局配置,临时用命令转换编码查看:
# git log 临时转码显示中文 git log | iconv -f utf-8 -t utf-8 # 查看最新提交中文信息 git show HEAD | iconv -f utf-8 -t utf-8
六、问题自查对照表
| 乱码现象 | 问题原因 | 解决方案 |
|---|---|---|
| git log 提交信息乱码 | 日志输出编码非 UTF-8 | 配置 i18n.logoutputencoding=utf-8 |
| git status 文件名乱码 | Git 转义中文字符 | 配置 core.quotepath=false |
| 所有 Git 命令都乱码 | 终端编码不是 UTF-8 | 设置 Git Bash 字符集为 UTF-8 |
| CMD 中 Git 中文乱码 | 系统未开启 UTF-8 支持 | 开启系统 Beta UTF-8 并重启 |
七、最终验证
执行命令,中文正常显示即修复成功:
git log --oneline git status
总结
- 优先执行 3 条 Git 配置命令,99% 场景直接解决;
- 仍乱码 → 设置 Git Bash 编码为 UTF-8;
- Windows 终端全局乱码 → 开启系统 UTF-8 支持并重启。
到此这篇关于Git中文乱码终极解决方案(git status / git log通用)的文章就介绍到这了,更多相关Git中文乱码解决内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
如何巧用vimdiff来替代原始的svn diff和git diff(效率提升)
这篇文章主要介绍了如何巧用vimdiff来替代原始的svn diff和git diff(效率提升),需要的朋友可以参考下2020-07-07
使用HTTP_X_FORWARDED_FOR获取客户端IP的严重后果
我的建议是不要再使用上面的方法去获取客户端IP.即是不要再理会代理情况.2009-11-11
JavaScript/VBScript脚本程序调试(Wscript篇)
在日常的操作系统维护过程中,有时我们也会写一些小的脚本程序来简化系统管理工作,例如调用一些WMI函数来自动安装卸载程序之类的。2009-09-09
git中submodule子模块的添加、使用和删除的示例代码
这篇文章主要介绍了git中submodule子模块的添加、使用和删除的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2020-08-08


最新评论