.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 파일을 파싱해 설정값들을 추출해서 사용한다.