git config
이 문서에서는 git config
명령을 자세히 살펴봅니다. 리포지토리 설정
페이지에서 git config 사용에 대해 간단히 알아보았습니다. git config
명령은 전역 또는 로컬 프로젝트 수준에서 Git 구성 값을 설정하는 데 사용되는 편리한 기능입니다. 이러한 구성 수준은 .gitconfig
텍스트 파일에 상응합니다. git config
를 실행하면 구성 텍스트 파일이 수정됩니다. 이메일, 사용자 이름 및 편집기와 같은 일반적인 구성 설정을 다룰 것입니다. 자주 사용하는 Git 작업에 대한 바로 가기를 만들 수 있는 Git 별칭에 대해서도 설명해 드리겠습니다. git config
와 다양한 Git 구성 설정에 익숙해지면 효과적인 사용자 지정 Git 워크플로를 만드는 데 도움이 됩니다.
사용
git config
의 가장 기본적인 사용 사례는 구성 이름으로 호출하는 것입니다. 그러면 해당 이름에 설정된 값이 표시됩니다. 구성 이름은 점으로 구분된 문자열로, 계층 구조에 따라 '섹션'과 '키'로 구성되어 있습니다. 예: user.email
git config user.email
이 예시에서 이메일은 사용자 구성 블록의 하위 속성입니다. 그러면 Git이 로컬에서 만든 커밋에 연결할 구성된 이메일 주소(있는 경우)를 반환합니다.
git config 수준 및 파일
git config
사용에 대해 더 자세히 알아보기 전에 잠시 구성 수준을 살펴보겠습니다. git config
명령은 인수를 수락하여 어떤 구성 수준에서 작업할지 지정할 수 있습니다. 다음과 같은 구성 수준을 사용할 수 있습니다.
관련 자료
Git 브랜치
솔루션 보기
Bitbucket Cloud에서 Git에 대해 알아보기
--local
기본적으로 구성 옵션이 전달되지 않으면 git config
는 로컬 수준에 씁니다. 로컬 수준 구성은 git config
가 호출되는 컨텍스트 리포지토리에 적용됩니다. 로컬 구성 값은 리포지토리의 .git 디렉터리 .git/config
에서 찾을 수 있는 파일에 저장됩니다.
-
--global
전역 수준 구성은 사용자에 따라 다르므로 운영 체제 사용자에게 적용됩니다. 전역 구성 값은 사용자의 홈 디렉터리에 있는 파일에 저장됩니다. Unix 시스템에서는 ~ /.gitconfig
, Windows에서는 C:\
에 저장됩니다.
-
--system
시스템 수준 구성은 컴퓨터 전체에 적용됩니다. 여기에는 운영 체제의 모든 사용자와 모든 리포지토리가 포함됩니다. 시스템 수준 구성 파일은 시스템 루트 경로의 gitconfig
파일에 있습니다. Unix 시스템에서는 $(prefix)/etc/gitconfig
에 있습니다. Windows에서 이 파일은 Windows XP의 경우 C:\Documents and Settings\All Users\Application Data\Git\config
, Windows Vista 이상의 경우 C:\ProgramData\Git\config
에서 찾을 수 있습니다.
따라서 구성 수준의 우선 순위는 로컬, 전역, 시스템입니다. 따라서 구성 값을 찾을 때 Git은 로컬 수준에서 시작하여 시스템 수준으로 올라갑니다.
값 쓰기
git config
에 대해 이미 알고 있는 내용을 더 자세히 알아보기 위해 값을 쓰는 예시를 살펴보겠습니다.
git config --global user.email "your_email@example.com"
이 예시에서는 구성 이름인 user.email
에 your_email@example.com
값을 씁니다. --global
플래그를 사용하므로 이 값은 현재 운영 체제 사용자에 대해 설정됩니다.
git config editor - core.editor
많은 Git 명령은 추가 입력 메시지를 표시하기 위해 텍스트 편집기를 실행합니다. git config
의 가장 일반적인 사용 사례 중 하나는 Git이 사용할 편집기를 구성하는 것입니다. 가장 많이 사용되는 편집기와 그에 맞는 git config
명령에 대한 표는 아래와 같습니다.
편집기 | 구성 명령 |
---|---|
Atom | 구성 명령 |
Emacs | 구성 명령 |
Nano | 구성 명령 |
vim | 구성 명령 |
Sublime Text(Mac) | 구성 명령 |
Sublime Text(Win, 32비트 설치) | 구성 명령 |
Sublime Text(Win, 64비트 설치) | 구성 명령 |
Textmate | 구성 명령 |
병합 도구
병합 충돌이 발생하면 Git은 "병합 도구"를 실행합니다. 기본적으로 Git은 일반적인 Unix diff 프로그램의 내부 구현을 사용합니다. 내부 Git diff는 최소한의 병합 충돌 뷰어입니다. 그 대신 사용할 수 있는 외부 타사 병합 충돌 해결 방법이 많이 있습니다. 다양한 병합 도구 및 구성에 대한 개요는 Git과의 충돌을 해결하기 위한 팁 및 도구에 대한 가이드를 참조하세요.
git config --global merge.tool kdiff3
색상이 지정된 출력
Git은 Git 출력을 빠르게 읽는 데 도움이 되는 색상이 지정된 터미널 출력을 지원합니다. 맞춤형 색상 테마를 사용하도록 Git 출력을 사용자 지정할 수 있습니다. git config
명령은 이러한 색상 값을 설정하는 데 사용됩니다.
color.ui
Git 색상의 마스터 변수입니다. false로 설정하면 색상이 지정된 Git의 모든 터미널 출력이 사용 중지됩니다.
$ git config --global color.ui false
기본적으로 color.ui
는 auto로 설정되어 있어 즉각적인 터미널 출력 스트림에 색상을 적용합니다. 출력 스트림이 파일로 리디렉션되거나 다른 프로세스로 파이프되는 경우 auto 설정에서 색상 코드 출력이 생략됩니다.
color.ui
값을 always로 설정하면 출력 스트림을 파일이나 파이프로 리디렉션할 때 색상 코드 출력도 적용됩니다. 수신 파이프에서 색상 코드 입력을 예상하지 못할 수도 있기 때문에 의도치 않게 문제가 발생할 수 있습니다.
Git 색상 값
color.ui
외에도 세분화된 색상 설정이 많습니다. color.ui
와 마찬가지로 이러한 색상 설정은 모두 false, auto 또는 always로 설정할 수 있습니다. 이러한 색상 설정에는 특정 색상 값이 설정될 수도 있습니다. 지원되는 색상 값의 몇 가지 예는 다음과 같습니다.
- 정상
- 검정색
- 빨간색
- 녹색
- 노란색
- 파란색
- 자홍색
- 녹청색
- 흰색
색상은 #ff0000과 같은 16진수 색상 코드나 터미널에서 지원하는 경우 ANSI 256 색상 값으로도 지정할 수 있습니다.
Git 색상 구성 설정
1. color.branch
- Git 브랜치 명령의 출력 색상을 구성합니다
2. color.branch.
<slot
>
- 이 값은 Git 브랜치 출력에도 적용됩니다. <
slot
>은 다음 중 하나에 해당합니다.- 1. current: 현재 브랜치
- 2. local: 로컬 브랜치
- 3. remote: 참조/원격 리포지토리의 원격 브랜치 참조
- 4. upstream: 업스트림 추적 브랜치
- 5. plain: 그 외의 참조
3. color.diff
git diff
,git log
,git show
출력에 색상을 적용합니다
4. color.diff
.<slot
>
color.diff
에서 <slot
> 값을 구성하면 패치의 어느 부분에 특정 색상을 사용할지 Git에 알려줍니다.- 1. context: diff의 컨텍스트 텍스트입니다. Git 컨텍스트는 변경 사항을 강조하는 diff 또는 패치에 표시된 텍스트 콘텐츠 줄입니다.
- 2. plain: 컨텍스트와 같습니다
- 3. meta: diff의 메타 정보에 색상을 적용합니다
- 4. frag: "헝크 헤더" 또는 "헝크 헤더의 함수"에 색상을 적용합니다
- 5. old: diff에서 제거된 줄에 색상을 적용합니다
- 6. new: diff의 추가된 줄에 색상을 적용합니다
- 7. commit: diff 내에서 커밋 헤더에 색상을 적용합니다
- 8. whitespace: diff의 모든 공백 오류에 색상을 설정합니다
5. color.decorate.
<slot
>
git log --decorate
출력의 색상을 사용자 지정합니다. 지원되는 <slot
> 값은branch
,remoteBranch
,tag
,stash
또는HEAD
입니다. 각각 로컬 브랜치, 원격 추적 브랜치, 태그, 스태시한 변경 사항,HEAD
에 적용됩니다.
6. color.grep
- git grep 출력에 색상을 적용합니다.
7. color.grep.
<slot
>
- 마찬가지로 git grep에 적용합니다. <
slot
> 변수는 grep 출력에서 색상을 적용할 부분을 지정합니다.- 1. context: 컨텍스트 줄의 일치하지 않는 텍스트
- 2. filename: 파일 이름 접두사
- 3. function: 함수 이름 줄
- 4. linenumber: 줄 번호 접두사
- 5. match: 일치하는 텍스트
- 6. matchContext: 컨텍스트 줄에서 일치하는 텍스트
- 7. matchSelected: 선택한 줄에서 일치하는 텍스트
- 8. selected: 선택한 줄에서 일치하지 않는 텍스트
- 9. separator: 한 줄에 있는 필드(:, -, =)와 hunk(--) 사이의 구분 기호
8. color.interactive
- 이 변수는 대화형 프롬프트와 디스플레이에 색상을 적용합니다. 예:
git add --interactive
및git clean --interactive
9. color.interactive.<slot
>
- 더 구체적인 "대화형 출력"을 대상으로 하도록 <
slot
> 변수를 지정할 수 있습니다. 사용할 수 있는 <slot
> 값은 prompt, header, help, error이며 각각 해당하는 대화형 출력에 작용합니다.
10. color.pager
- 페이저가 사용 중일 때 색상 출력을 사용 설정하거나 사용 중지합니다
11. color.showBranch
- git show branch 명령의 색상 출력을 사용 설정하거나 사용 중지합니다
12. color.status
- Git 상태의 색상 출력을 사용 설정하거나 사용 중지하는 부울 값입니다
13. color.status.<
slot
>
지정된 Git 상태 요소에 사용자 지정 색상을 지정하는 데 사용됩니다. <slot
>은 다음 값을 지원합니다.
1. header
- 상태 영역의 헤더 텍스트를 대상으로 합니다
2. added 또는 updated
- 추가되었지만 커밋되지 않은 파일을 대상으로 합니다
3. changed
- 수정되었지만 Git 색인에 추가되지 않은 파일을 대상으로 합니다
4. untracked
- Git에서 추적하지 않는 파일을 대상으로 합니다
5. branch
- 현재 브랜치에 색상을 적용합니다
6. nobranch
- "브랜치 없음" 경고가 표시되는 색상입니다
7. unmerged
- 병합되지 않은 변경 사항이 있는 색상 파일입니다
별칭
운영 체제 명령줄의 별칭 개념에 대해 잘 알고 계실 수 있습니다. 별칭이란 어떤 명령이 더 길거나 결합된 명령으로 확장할지를 정의하는 사용자 지정 바로 가기입니다. 별칭을 사용하면 자주 사용하는 명령을 입력하는 데 드는 시간과 에너지 비용을 절약할 수 있습니다. Git은 자체 별칭 시스템을 제공합니다. Git 별칭의 일반적인 사용 사례는 커밋 명령을 짧게 만드는 것입니다. Git 별칭은 Git 구성 파일에 저장됩니다. 따라서 git config
명령으로 별칭을 구성할 수 있습니다.
git config --global alias.ci commit
이 예시에서는 git commit
명령의 ci 별칭을 만듭니다. 그런 다음 git ci
를 실행하여 git commit
을 호출할 수 있습니다. 별칭은 다른 별칭을 참조하여 강력한 조합을 만들 수도 있습니다.
git config --global alias.amend ci --amend
이 예시에서는 ci 별칭을 --amend flag
를 사용하는 새 별칭으로 구성하는 별칭 수정을 만듭니다.
형식 및 공백
Git에는 git diff를 사용할 때 공백 문제를 강조 표시하도록 구성할 수 있는 여러 "공백" 기능이 있습니다. 공백 문제는 구성된 색상인 color.diff.whitespace
를 사용하여 강조 표시됩니다
기본적으로 사용 설정되는 기능은 다음과 같습니다.
blank-at-eol
은 줄 끝에 고립된 공백을 강조 표시합니다space-before-tab
은 줄을 들여쓰기할 때 탭 문자 앞에 나타나는 공백 문자를 강조 표시합니다blank-at-eof
는 파일 끝에 삽입된 빈 줄을 강조 표시합니다
기본적으로 사용 중지되는 기능은 다음과 같습니다
indent-with-non-tab
은 탭 대신 공백으로 들여쓴 줄을 강조 표시합니다tab-in-indent
는 초기 탭 들여쓰기를 오류로 강조 표시합니다trailing-space
는 blank-at-eol 및 blank-at-eof의 줄임 속성입니다cr-at-eol
은 줄 끝의 캐리지 리턴을 강조 표시합니다tabwidth=
은 탭이 차지하는 문자 위치의 개수를 정의합니다. 기본값은 8이며 허용되는 값은 1~63입니다
요약
이 글에서는 git config
명령의 사용에 대해 다루었습니다. 이 명령이 파일 시스템에서 원시 git config
파일을 편집하는 데 유용한 방법인 이유를 설명했습니다. 구성 옵션에 대한 기본적인 읽기 및 쓰기 작업과 일반적인 구성 패턴을 살펴보았습니다.
- Git 편집기를 구성하는 방법
- 구성 수준을 재정의하는 방법
- 구성 기본값을 재설정하는 방법
- Git 색상을 사용자 지정하는 방법
결과적으로 git config
는 디스크의 원시 git config
파일을 편집할 수 있는 바로 가기를 제공하는 도우미 도구입니다. 개인 사용자 지정 옵션에 대해 자세히 살펴보았습니다. 리포지토리를 설정하려면 Git 구성 옵션에 대한 기본적인 지식이 있어야 합니다. 기본 데모를 보려면 가이드를 참조하세요.
이 문서 공유
다음 토픽
여러분께 도움을 드릴 자료를 추천합니다.
이러한 리소스에 책갈피를 지정하여 DevOps 팀의 유형에 대해 알아보거나 Atlassian에서 DevOps에 대한 지속적인 업데이트를 확인하세요.