Image
CI\CD/Git

[Git] git config 는 어떻게 동작하는가?

.git 폴더의 config 파일

.git 폴더의 config 파일은 git repository에 대한 설정값을 저장해놓는 파일이다. git은 config 파일을 읽어 설정값들을 사용하며, 유저들의 조회 요청이 있을 경우 출력해준다. 

 

config 파일의 역할은 다양한데 user name, email 을 설정하는 것에서부터 remote repository에 대한 정보 또한 저장한다. 추가적으로 color scheme 을 적용해 git 명령어에 대한 가독성을 높일 수도 있다. 이 글에서는 간단히 이해하기 위해 git을 사용하는 모든 사람들이 익숙한 user name과 email을 설정하고 .git/config 파일을 통해 조회하는 방법과  remote 정보를 추가하고 확인하는 방법에 대해 다룬다.

 

 

 

User name과 email을 확인하고 수정하는 방법

User name과 email 확인하기

git의 유저 이름과 이메일을 정의하기 위해 다음과 같은 명령어를 사용해봤을 것이다. 이 명령어를 사용하면 개별 git repository에 유저 이름과 이메일이 설정된다.

$ git config --local user.name "devcho"
$ git config --local user.email "devcho@kotlinworld.com"

 

설정된 유저 이름과 이메일을 조회하기 위해서는 다음과 같은 명령어를 사용한다.

$ git config --local user.name 
devcho
$ git config --local user.email
devcho@kotlinworld.com

위와 같이 읽이 위해서는 분명히 값들을 저장하는 공간이 있을 것이다. 도대체 설정값들은 어디에 쓰이고 어디서 가져오는걸까?

 

바로 .git 폴더의 config 파일에서 가져온다. git 루트 디렉터리에서 vim .git/config를 치면 .git 폴더의 config 파일이 열리는데 위에서 설정한 내용이 다음과 같이 출력되는 것을 확인할 수 있다.

$ vim .git/config 

[core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
        ignorecase = true
        precomposeunicode = true
[user]
        name = devcho
        email = devcho@kotlinworld.com

우리가 설정한 이름과 이메일이 출력되는 것을 확인할 수 있다.

 

 

User name과 email 수정하기

위의 .git/config 파일의 [user]의 name을 다음과 같이 수정해보도록 하자. 단순히 name 필드의 값을 바꾸는 것으로 user.name 값이 수정된다.

$ vim .git/config

[core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
        ignorecase = true
        precomposeunicode = true
[user]
        name = kotlinworld
        email = devcho@kotlinworld.com

 

그러면 유저 이름이 다음과 같이 수정된 것을 확인할 수 있다.

$ git config --local user.name 
kotlinworld

 

하지만 이 방식은 권장되지 않는다. 사람이 직접 파일을 수정할 경우 조금만 오류가 생겨도 파싱에 문제가 생길 수 있기 때문이다. 이 글에서는 동작 방식만 알고 실제 사용할 때는 git config --local user.name [user name] 명령어를 이용해 편집하도록 하자.

 

 

 

.git 폴더의 config 파일에서 Remote 정보를 확인하는 방법

remote repository에 대한 정보 또한 .git/config 파일에 저장된다. 

 

만약 우리가 아래와 같이 remote repository의 이름을 origin으로 설정해서 추가했다고 해보자.

$ git remote add origin https://github.com/simplistudio/demo-page.git

 

그러면 .git/config 파일을 조회해보면 Remote repository의 정보가 저장된 것을 확인할 수 있다.

$ vim .git/config             

[core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
        ignorecase = true
        precomposeunicode = true
[user]
        name = kotlinworld
        email = devcho@kotlinworld.com
[remote "origin"]
        url = https://github.com/simplistudio/demo-page.git
        fetch = +refs/heads/*:refs/remotes/origin/*

마찬가지로 이곳에서도 텍스트 값 자체를 수정할 수도 있지만 왠만해서는 Remote 정보를 수정하는 명령어를 사용해 수정하도록 하자.

 

 

 

정리

.git 폴더의 config 파일은 개별 git repository를 위한 설정 값들을 저장해놓는 공간이다. 실제로 git에서는 config 파일을 파싱해 설정값들을 추출해서 사용한다.

반응형

 

이 글의 저작권은 '조세영의 Kotlin World' 에 있습니다. 글, 이미지 무단 재배포 및 변경을 금지합니다.

 

 

Kotlin, Android, Spring 사용자 오픈 카톡

오셔서 궁금한 점을 질문해보세요!
비밀번호 : kotlin22

open.kakao.com