개발자 도구/Git

[Git] git 명령어 시 한글 깨짐 문제

Dev.Andy 2023. 8. 1. 01:01

머리말

Git 관련 문제

git status 명령어 입력 시 한글 깨짐

아래처럼 git status를 하는데 한글만 \354 \235처럼 이스케이프 문자로 깨져서 나오게 되어 알아볼 수 없는 문제가 발생했다.

git 명령어 시 한글이 깨지는 문제 발생

원인

quotepath와 "unusal" 문자

quotepath는 경로의 이름(pathname)이 특별한(unusal) 경우에 이를 다르게 표현하는 git의 기본 설정이다. 특별한 경우는, 경로의 이름에 쌍따옴표("), 이스케이프 문자(\n, \t 등등)나 바이트의 크기가 0x80(8진법으로 80) 이상의 문자는 git에서 "unusal" 문자로 판단한다.

따라서 이를 수정해주면 된다.

해결책

명령어 입력

아래와 같은 명령어를 입력하면 해결이 된다.

git config --global core.quotepath false

git config --global

아래 블로그에서 자세히 다루었는데, git config 명령어는 git에 대한 설정을 저장하는 것이고, --global 옵션을 설정하면 현재 저장소뿐만 아니라 현재 사용자 전체(맥 로그인 시 로그인 계정)에 영향을 준다.

[Git] git config로 사용자 정보 설정하기 - 등록/조회/삭제

core.quotepath false

core.quotepath는 한글처럼 큰 바이트를 문자를 이스케이프 문자로 바꿔주는 것을 의미한다. 이를 false로 처리한다는 뜻이다. 

git commit을 해도 이제 한글("의 개수")가 잘 출력이 된다

이제 한글 깨짐 없이 잘 출력이 된다 :)

꼬리말

한글은 3바이트 문자 (utf-8)

유니코드 표기법(그 중에서 가장 대중적인 utf-8)에서 한글은 3바이트를 가진 문자여서 (영문은 1 바이트) 일반적인 문자로 판단하지 않는 경우가 있어서 글자가 깨질 수 있다. 이를 보완하려면 git에 설정 하나를 추가해 주어야 한다.

유니코드에 대한 설명은 아래에 다루었으니 참고!

[CS50 2019] (컴퓨팅 사고) 정보의 표현

Git 공식 문서 - git config

Git - git-config Documentation - core.quotePath