git pull 遇到乱码

执行git pull 输出好多编码非中文的字符:

 1remote: Enumerating objects: 42, done.
 2remote: Counting objects: 100% (42/42), done.
 3remote: Compressing objects: 100% (18/18), done.
 4remote: Total 32 (delta 9), reused 32 (delta 9), pack-reused 0 (from 0)
 5Unpacking objects: 100% (32/32), 4.17 KiB | 8.00 KiB/s, done.
 6From github.com:JermineHu/jerminehu.github.io
 7   08d9ec6..9c5c1ec  master     -> origin/master
 8Updating 08d9ec6..9c5c1ec
 9Fast-forward
10 .../29\346\227\245/\345\205\263\344\272\216claude code\344\275\277\347\224\250.md" | 39 +++++++++++++++++++++++++++++++++++++++
11 .../30\346\227\245/\346\210\220\344\270\272\350\207\252\345\267\261.md"            |  1 +
12 .../03\346\227\245/\345\205\263\344\272\216\347\235\241\347\234\240.md"            | 21 +++++++++++++++++++++
13 ...203\345\271\263\350\203\275\346\204\210\344\270\211\345\215\203\347\226\276.md" | 15 +++++++++++++++
14 ...214\345\222\214\346\203\263\346\210\220\344\270\272\347\232\204\344\272\272.md" | 14 ++++++++++++++
15 .../05\346\227\245/\346\234\235\350\212\261\345\244\225\346\213\276.md"            |  6 ++++++
16 6 files changed, 96 insertions(+)
17 create mode 100644 "6. \350\241\250\350\276\276/\345\215\241\347\211\207/2026\345\271\264/2\345\255\243\345\272\246/05\346\234\210/03\346\227\245/\345\205\263\344\272\216\347\235\241\347\234\240.md"
18 create mode 100644 "6. \350\241\250\350\276\276/\345\215\241\347\211\207/2026\345\271\264/2\345\255\243\345\272\246/05\346\234\210/05\346\227\245/\345\277\203\345\271\263\350\203\275\346\204\210\344\270\211\345\215\203\347\226\276.md"
19 create mode 100644 "6. \350\241\250\350\276\276/\345\215\241\347\211\207/2026\345\271\264/2\345\255\243\345\272\246/05\346\234\210/05\346\227\245/\346\210\221\344\273\254\347\273\210\345\205\266\344\270\200\347\224\237\345\257\273\346\211\276\347\232\204\357\274\214\345\272\224\350\257\245\346\230\257\350\207\252\345\267\261\345\226\234\346\254\242\347\232\204\347\224\237\346\264\273\346\226\271\345\274\217\357\274\214\345\222\214\346\203\263\346\210\220\344\270\272\347\232\204\344\272\272.md"
20 create mode 100644 "6. \350\241\250\350\276\276/\345\215\241\347\211\207/2026\345\271\264/2\345\255\243\345\272\246/05\346\234\210/05\346\227\245/\346\234\235\350\212\261\345\244\225\346\213\276.md"

解决方案:

遇到的问题是 Git 默认将非 ASCII 路径名(如中文)转义为 \nnn 形式的八进制编码,这是为了确保在老旧或非 UTF-8 环境中输出不会乱码。解决办法很简单:关闭路径转义。

操作步骤

执行以下命令,让 Git 直接显示原始的中文字符:

1git config --global core.quotepath false

--global 表示全局生效(推荐),如果只想对当前仓库生效,去掉 --global 即可。

验证

再次执行 git statusgit pull,文件名就会正常显示中文。

补充说明

  • 确保你的终端(Terminal)支持 UTF-8 编码,大多数现代终端默认都支持。
  • 如果之前的中文文件已经提交到了仓库,修改此配置后,git loggit diff 等命令也会正常显示中文路径。

可选的其他配置

如果你还遇到提交信息(commit message)中文乱码,可以同时设置:

1git config --global i18n.commitEncoding utf-8
2git config --global i18n.logOutputEncoding utf-8

这些配置对已提交的历史记录同样有效(只是显示层面的改动)。