git status 한글 파일명이 깨질 때 해결법

오준석 | Junsuk Oh·약 17시간 전

코딩삽질방지

목록 보기
67/67

터미널에서 git status나 git diff를 실행했을 때 한글 파일명이 정상적으로 보이지 않고 아래처럼 8진수 이스케이프 형태로 출력되는 경우가 있습니다.

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        "docs/prompts/\352\265\220\352\263\274\353\252\251-\354\235\274\352\264\204\353\223\261\353\241\235-\355\224\204\353\241\254\355\224\204\355\212\270.md"
        "docs/\352\265\220\354\247\201\354\233\220\355\230\204\355\231\251-\352\260\234\353\260\234\352\263\204\355\232\215-\352\262\200\355\206\240\355\224\274\353\223\234\353\260\261.md"

인코딩이 완전히 깨진 것처럼 보이지만, 사실 이는 파일 시스템 손상이 아니라 Git의 기본 경로 이스케이프 정책 때문에 발생하는 현상입니다.


1. 원인: core.quotepath 설정

Git의 기본 설정값 중 하나인 core.quotepath의 기본값은 true입니다.

이 옵션이 활성화되어 있으면 Git은 0x80 이상의 비-ASCII(Non-ASCII) 바이트를 따옴표("...")로 감싸고 8진수(Octal) 바이트 시퀀스로 이스케이프하여 터미널에 출력합니다.

한글은 UTF-8 기준 글자당 3바이트를 차지하므로, 한 글자마다 \352\265...처럼 3개의 8진수 코드가 나열되어 출력되는 것입니다.


2. 해결 방법

core.quotepath 값을 false로 변경하면 Git이 경로를 이스케이프하지 않고 원래 UTF-8 문자 그대로 출력합니다.

2.1. 전역(Global) 적용 (권장)

현재 사용자 계정의 모든 Git 저장소에 기본 적용하려면 --global 플래그를 사용합니다.

git config --global core.quotepath false

2.2. 현재 저장소에만 적용

특정 프로젝트 저장소 내에서만 적용하고 싶다면 옵션 없이 실행합니다.

git config core.quotepath false

3. 결과 확인

설정을 마친 후 다시 터미널에서 상태를 확인해 봅니다.

git status
Untracked files:
  (use "git add <file>..." to include in what will be committed)
        docs/prompts/교과목-일괄등록-프롬프트.md
        docs/교직원현황-개발계획-검토피드백.md

따옴표와 8진수 이스케이프 시퀀스가 사라지고, 원래의 한글 파일명이 깔끔하게 표시되는 것을 확인할 수 있습니다.

profile
소프트웨어 개발자 · IT 교육자 · 저자. Android / Kotlin / Flutter / AI Coding 개발하면서 배우고 경험한 것들을 기록합니다. YouTube: 오준석의 생존코딩

0개의 댓글