ETC/Git

Git 입문자 안내서 - 03 : git config

Jade Choe 2024. 1. 5. 16:16
SMALL

이전 포스팅에서 git config을 사용했는데, 종종 쓰이므로 config의 종류에 대해 알아보자.

콘솔창에

git config --help

라고 입력하면
git-config(1) Manual Page라는 제목의 웹페이지가 하나 뜬다.

입문자의 입장에선 장황하기 그지없는 불친절한 (그것도 영어로 쓰인) 문서이기 때문에 접어두도록 하고,
이 포스팅에선 기초적인 사용방법과 자주 쓰이는 config만 설명한다.

기본 사용방법

기본적인 사용방법은 여타 콘솔 명령어와 다르지 않다.

git config [설정 이름] [설정 값]

범위 지정

설정값이 적용될 범위를 지정할 수 있다.
범위가 적용되는 우선순위는 로컬 저장소 > Global > System 이다.
로컬 저장소의 설정이 가장 하위 설정

Local

범위 지정을 하지 않으면 해당 로컬 저장소의 설정을 변경한다.
해당 로컬 저장소의 숨겨진 .git폴더에 있는 config 파일에 저장된다.

git config [설정 이름] [설정 값]

또는 --local을 입력해 로컬 저장소로 범위를 지정할 수도 있다.

git config --local [설정 이름] [설정 값]

Global

범위 지정을 global로 한다면 로그인한 사용자가 접근하는 모든 로컬 저장소에 적용된다.
C:\Users\계정명\.gitconfig 파일에 저장된다.

git config --global [설정 이름] [설정 값]

로그인한 사용자란 윈도우에 로그인한 계정을 말한다.

System

범위 지정을 system으로 한다면 C:\ProgramData\Git\config 파일에 저장되며, 사용자 계정과 상관 없이 적용된다.
당연하게도, 시스템 경로에 있기 때문에 변경하려면 관리자 권한이 필요하다.

git config --system [속성명] [설정값]

속성

사용자

commit, push를 하려면 사용자의 정보가 있어야 한다.
사용자 속성은 name과 email로 되어있으며, 대체로 --global 옵션을 사용해 최초 설치단계에서만 지정하는 편이다.

git config --global user.name "Jade"
git config --global user.email "jade@mycompany.com"

작성자, 커미터

다만, 코드 작성자와 커미터가 다르게 적용되어야 하는 경우 user 속성 대신 authorcommitter 속성을 나눠서 적용할 수 있다.

이 경우 둘 중 하나만 적용되어있다면 나머지는 자동으로 user 속성으로 적용되며, 해당 범위에 user가 지정되어있지 않다면 상위 범위로 적용된다.

git config author.name "Anthon"
git config author.email "anthon@mycompany.com"

git config committer.name "Mark"
git config committer.email "Mark@mycompany.com"

author와 committer가 지정된 경우
author가 지정되지 않고, committer만 지정된 경우
committer가 지정되지 않고, author만 지정된 경우

할당 확인

속성이 잘 적용되었는지 확인하려면 설정값은 빼고 범위와 속성만 넣어주면 나온다.

아무 범위도 지정하지 않으면 우선순위에 따라 설정된 값이 나온다.
로컬 저장소에 user.name이 지정되어있지 않은 경우 Global의 user.name이 나온다는 뜻.

git config [범위] [설정 이름]

설정되지 않았다면 아무것도 출력되지 않는다.

할당 해제

속성을 지정 해제하려면 --unset 옵션을 사용하면 된다.
아무 범위도 지정하지 않으면 로컬 저장소의 속성이 제거된다.

git config [범위] --unset [속성명]
BIG