Featured image of post Gitstatus时中文文件名乱码

Gitstatus时中文文件名乱码

Git status时中文文件名乱码

在创建中文文件名的文件时,使用git status查看状态时,可以看到文件名乱码,不知道对应的文件到底是哪一个,如下所示:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
[mzh@MacBookPro test (master)]$ ll
total 8
drwxr-xr-x   4 mzh   wheel   128B  3 20 11:29 .
drwxrwxrwt   7 root  wheel   224B  3 20 10:30 ..
drwxr-xr-x  14 mzh   wheel   448B  3 20 11:29 .git
-rw-r--r--   1 mzh   wheel    53B  3 19 00:17 data.txt
[mzh@MacBookPro test (master)]$ ls -l
total 8
-rw-r--r--  1 mzh  wheel  53  3 19 00:17 data.txt
[mzh@MacBookPro test (master)]$ echo '测试钩子' > 钩子.txt
[mzh@MacBookPro test (master ✗)]$ ls -l
total 16
-rw-r--r--  1 mzh  wheel  53  3 19 00:17 data.txt
-rw-r--r--  1 mzh  wheel  13  3 20 11:29 钩子.txt
[mzh@MacBookPro test (master ✗)]$ git status
On branch master
Your branch is up to date with 'origin/master'.

Untracked files:
  (use "git add <file>..." to include in what will be committed)
	"\351\222\251\345\255\220.txt"

nothing added to commit but untracked files present (use "git add" to track)
[mzh@MacBookPro test (master ✗)]$

可以看到,当我们创建“钩子.txt”文件时,查看状态时,文件被显示为“\351\222\251\345\255\220.txt”, 这是什么,看不懂。

git 默认中文文件名是 \xxx\xxx 等八进制形式,是因为对0x80以上的字符进行quote转义。

只需要设置core.quotepath设为false,中文文件名则会显示正常。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
## 查看当前配置
[mzh@MacBookPro test (master ✗)]$ git config --global core.quotepath

## 设置为新值
[mzh@MacBookPro test (master ✗)]$ git config --global core.quotepath false

## 再次查看core.quotepath的值
[mzh@MacBookPro test (master ✗)]$ git config --global core.quotepath
false

## 查看状态,可以看到文件名已经正常显示中文了
[mzh@MacBookPro test (master ✗)]$ git status
On branch master
Your branch is up to date with 'origin/master'.

Untracked files:
  (use "git add <file>..." to include in what will be committed)
	钩子.txt

nothing added to commit but untracked files present (use "git add" to track)
[mzh@MacBookPro test (master ✗)]$

禁止转义后,可以正常查看中文文件名了。

Licensed under the GNU General Public License v3.0