BIBLIOGRAPHY

xguru. 2025. “Git 코어 개발자는 Git을 어떻게 설정하고 사용할까?” February 26, 2025. https://news.hada.io/topic?id=19441.

관련메타

History

  • [2025-06-05 Thu 14:17] 추가
  • [2025-02-06 Thu 14:55] 내어놓자

Git 코어 개발자는 Git을 어떻게 설정하고 사용할까?

(xguru 2025) xguru 2025

“Pro Git” 저자인 Scott Chacon이 글로벌로 활성화한 몇 가지 Git 설정과 그 이유를 설명설정 중 다수는 실제로 Git 코어 코드베이스를 작업하는 개발자들로부터 배운 것임아래는 Git을 더 좋게 만드는 \textasciitilde/.gitconfig 설정[column] ui = auto [branch] sort = -committerdate [tag] so

git 윈도우즈 환경 설정 파일

 
git config --global user.name "junghan0611"
git config --global user.email 31724164+junghan0611@users.noreply.github.com
git config --global merge.conflictstyle diff3
 
# 인코딩 관련
git config --global core.quotepath false
git config --global core.autocrlf input
 

아카이브

DONE bennyandresen/jujutsu.el

추가

[2025-08-05 Tue 12:23] @user git 에서 한글 파일의 경우 unicode로 파일명이 저장되는데 ~/.config/git/config 파일에 관련 설정을 하는 방법이 있는데 방법을 알려줘. 리눅스 깃 한글 깃환경이야.

아 아마 내 설정에 들어가 있을 수도 있어. 다른 서버에 세팅하면서 찾아보는 중이거든. 확인해봐봐.

@assistant 리눅스 환경에서 git 한글 파일명 문제는 주로 두 가지 설정으로 해결합니다.

  1. core.quotepath = false 이 설정은 git이 한글 등 0x80 이상의 바이트를 가진 문자(즉, 비ASCII 문자)를 이스케이프 처리하지 않고 그대로 출력하도록 합니다. 기본값은 true라서 한글 파일명이 \xxx\xxx 형태로 깨져 보이는데, false로 하면 정상 한글로 표시됩니다. 예)
       git config --global core.quotepath false
       =
       또는 =~/.config/git/config= 파일에 아래처럼 설정합니다.
       #+begin_src
       [core]
           quotepath = false
       =
     설정이 한글 파일명 출력 문제를 가장 많이 해결합니다[1][2][3][4].
     
    2. =core.precomposeunicode = true=
     옵션은 macOS에서 한글 자모 분리 문제를 해결하는 주로 쓰이지만, 리눅스에서도 유니코드 정규화 문제에 도움될 있습니다. 이미 질문에 올려주신 설정에 포함되어 있네요.
       #+begin_src
       [core]
           precomposeunicode = true
       =
     옵션은 한글 파일명이 자소 단위로 분리되는 문제를 방지합니다[3].
     
    요약하면, 한글 파일명 문제를 해결하려면 =core.quotepath = false=를 반드시 설정하고, =core.precomposeunicode = true=도 함께 설정하면 좋습니다. 질문에 올려주신 =~/.config/git/config= 파일에는 이미 =precomposeunicode = true=와 =quotepath = false=가 설정되어 있어 한글 파일명 관련 설정은 적절히 되어 있는 상태입니다.
     
    즉, 다른 서버에 세팅할 때도 동일하게 아래 설정을 포함시키면 됩니다.
     
    #+begin_src ini
    [core]
        precomposeunicode = true
        quotepath = false

이외에 한글 파일명 인코딩 문제는 터미널 환경(로케일)이나 에디터 설정과도 관련 있으니, 터미널 로케일이 UTF-8로 설정되어 있는지 확인하는 것도 중요합니다.

Citations: [1] https://sw-ym.tistory.com/126 [2] https://zlzzlzz2l.tistory.com/50 [3] https://blog.asamaru.net/2017/06/26/mac-os-git-korean-file-name-corequotepath/ [5] https://hezma.tistory.com/115

@user zdiff3가 뭔가요? delta와 연동이 된다고 하는데 로컬에 보니 설치도 안되있네요.

@assistant zdiff3=는 Git의 =merge.conflictStyle 옵션 중 하나로, 기본 diff3 스타일과 비슷하지만 =delta=라는 외부 도구와 연동해 더 보기 좋은 병합 충돌(conflict) 출력을 제공하는 스타일입니다.

Git에서 병합 충돌이 발생하면 보통 충돌된 두 버전과 공통 조상(merge base) 세 가지 내용을 보여주는데, =zdiff3=를 설정하면 =delta=가 이 세 가지를 컬러 하이라이트와 함께 두 개의 diff로 나누어 보여줍니다. 즉, =delta=가 병합 충돌 화면을 좀 더 직관적이고 시각적으로 보기 좋게 만들어 줍니다[1][2][4].

zdiff3=는 별도의 독립 실행 파일이 아니라 =delta 프로그램 내부에서 지원하는 병합 충돌 스타일 이름입니다. 따라서 zdiff3=를 사용하려면 =delta=가 설치되어 있어야 하며, =delta=가 설치되어 있지 않으면 =zdiff3 스타일은 동작하지 않습니다.

만약 로컬에 =delta=가 설치되어 있지 않다면, 다음과 같이 설치할 수 있습니다:

  • 우분투 등 리눅스 배포판에서는 sudo apt install git-delta (또는 패키지 매니저에 따라 다름)
  • 또는 GitHub https://github.com/dandavison/delta 에서 바이너리 다운로드 및 설치 가능[2][3].

설치 후 ~/.gitconfig=에 아래처럼 설정하면 병합 충돌 시 =delta=가 =zdiff3 스타일로 출력해 줍니다.

[core]
    pager = delta
 
[interactive]
    diffFilter = delta --color-only
 
[delta]
    navigate = true
 
[merge]
    conflictstyle = zdiff3

정리하면, zdiff3=는 =delta=가 지원하는 병합 충돌 스타일 이름이며, =delta=가 설치되어 있어야 동작합니다. 로컬에 =delta=가 없다면 =zdiff3 스타일도 사용할 수 없습니다[1][2][4].

Citations: [1] https://dandavison.github.io/delta/configuration.html [2] https://github.com/dandavison/delta [3] https://kibua20.tistory.com/38 [4] https://dandavison.github.io/delta/merge-conflicts.html [5] https://www.whatwant.com/entry/Delta

@user Delta 가 제공하는 기능이 단순히 보기 좋은 것인가요? 아니면 특수한 diff 기능이 포함 된 것인가요?

@assistant Delta는 단순히 보기 좋은 출력만 제공하는 것이 아니라, 다음과 같은 특수한 기능도 포함한 고급 Git 출력 뷰어입니다.

  • 구문 강조(syntax highlighting)를 지원해 코드 변경 부분을 언어별로 색상 구분해 보여줌
  • Levenshtein 편집 거리 알고리즘을 이용한 단어 단위 차이 강조(word-level diff)
  • 나란히 보기(side-by-side diff)와 줄 바꿈 기능 제공
  • git diff, grep, blame 등 다양한 Git 명령 출력에 적용 가능
  • 매우 빠르고 깔끔한 출력으로 터미널에서 가독성 크게 향상

즉, Delta는 단순히 “보기 좋게” 만드는 데 그치지 않고, 내부적으로 단어 단위 차이 계산 등 특수한 diff 기능을 포함해 Git 출력의 품질과 가독성을 크게 개선하는 도구입니다[1][3][4].

한편, Git 자체는 프로젝트 전체를 스냅샷 형태로 관리하는 방식이고, Delta는 이 Git 출력 결과를 더 효과적으로 보여주기 위한 보조 도구 역할을 합니다[2].

요약하면, Delta는 보기 좋은 출력뿐 아니라 단어 단위 차이 강조, 구문별 색상 표시, 나란히 보기 등 특수한 diff 기능을 포함한 고급 Git 출력 뷰어입니다.

Citations: [1] https://news.hada.io/topic?id=17669 [2] https://tech.10000lab.xyz/git/how-git-is-different.html [3] https://news.hada.io/topic?id=13405 [4] https://www.whatwant.com/entry/Delta [5] https://nozeroslope.tistory.com/186

@user