LainyZine: 프로그래머 가이드 🐣

Git 저장소 별로 사용자 이름과 이메일 다르게 설정하는 방법

Git에서는 커밋에 사용자 이름과 이메일을 기록하며, 이 때 사용한 이메일은 GitHub 사용자와 연동하는 데도 사용됩니다. 사용자 정보를 설정하는 방법에 대해서는 다음 글에서 다룹니다.

하나의 시스템에서 단일 프로필로 작업하는 경우에는 전역 설정을 편리하게 사용할 수 있습니다만, 여러 프로필을 사용하는 경우에는 저장소 별로 사용자 이름과 이메일을 다르게 설정할 필요가 있습니다. 이 글에서는 Git 저장소마다 사용자 이름과 이메일을 다르게 사용하는 방법을 소개합니다.

Git 저장소마다 사용자 이름과 이메일 정보 다르게 설정하기

Git에서는 글로벌 옵션으로 모든 Git 저장소에 적용되는 이름과 이메일을 설정할 수도 있지만, 저장소마다 사용자 설정을 다르게 설정할 수 있습니다. 먼저 저장소 디렉터리로 이동하고 다음 명령어로 사용자 이름과 이메일을 설정합니다.

$ mkdir git-a
$ cd git-a
$ git init
$ git config user.name "LainyZine"
$ git config user.email lainyzine.com@gmail.com

git config를 첫 번째 인자만 지정해서 실행하면 현재 저장소에서 사용하는 설정 값을 확인할 수 있습니다.

$ git config user.name
LainyZine
$ git config user.email
lainyzine.com@gmail.com

이번에는 다른 디렉터리를 만들고 다른 사용자 이름과 이메일을 지정해봅니다.

$ cd ..
$ mkdir git-b
$ cd git-b
$ git init
$ git config user.name "HelloWorld"
$ git config user.email helloworld@example.com

$ git config user.name
HelloWorld
$ git config user.email
helloworld@example.com

git-a와 git-b 디렉터리에서 서로 다른 프로필이 사용되는 것을 확인할 수 있습니다.

저장소 별 git 설정이 저장되는 위치

저장소 별 설정은 [REPO]/.git/config 파일에 저장됩니다. 실제로 두 저장소의 .gitconfig 파일을 출력해서 비교해보겠습니다.

$ cd ..
$ cat git-a/.git/config
.....
[user]
    name = LainyZine
    email = lainyzine.com@gmail.com

$ cat git-b/.git/config
.....
[user]
    name = HelloWorld
    email = helloworld@example.com

이 정보를 바탕으로 디렉터리마다 서로 다른 사용자 정보를 커밋에 Author로 기록하게 됩니다.

글로벌 설정과 사용자 정보가 충돌 나는 경우 우선 순위

아래와 같이 사용자 정보를 시스템 전역적으로 설정한 경우 우선 순위를 확인해보겠습니다.

$ git config --global user.name "Your Name"
$ git config --global user.email you@example.com

먼저 git-a 디렉터리로 이동해서 사용자 정보를 확인해보겠습니다.

$ cd git-a
$ git config user.name
LainyZine
$ git config user.email
lainyzine.com@gmail.com

git-a에 직접 설정한 사용자 정보가 사용되는 것을 확인할 수 있습니다. 그럼 이번에는 git-c 저장소를 초기화하고, 별도로 사용자를 지정하지 않고 사용자 이름을 확인해보겠습니다.

$ cd ..
$ mkdir git-c
$ cd git-c
$ git init
$ git config user.name
Your Name
$ git config user.email
you@example.com

git-c 디렉터리에는 저장소 사용자 설정을 별도로 하지 않았습니다. 이 상태에서는 global 옵션으로 설정한 사용자 정보가 사용되는 것을 확인할 수 있습니다. 즉, 저장소에 별도로 설정한 값이 우선적으로 사용됩니다.

팁: 커밋 별로 사용자 이름과 이메일을 지정하는 방법

git commit을 사용할 때 c 옵션을 사용하면 커밋마다 사용자 이름과 이메일을 다르게 지정할 수도 있습니다. 아래와 같은 형식으로 사용할 수 있습니다.

git -c "user.name=Your Name" -c "user.email=Your email" commit -m "COMMIT MESSAGE"

GitHub 멀티 어카운트 환경 셋업 방법

이 글에서는 로컬 저장소 별로 사용자 정보를 설정하는 방법을 소개했습니다. 한 두 개 정도 저장소에서 이렇게 사용하는 건 크게 불편함이 없습니다만, 일상적으로 멀티 어카운트나 다중 프로필을 사용하는 경우 여전히 많은 어려움이 있습니다. 다음 글에서는 Git 저장소의 Author 설정을 비롯해, GitHub 멀티 어카운트를 사용할 때 유용한 셋업들에 대해서 소개합니다.

LainyZine은 쿠팡 파트너스 활동에 따른 수수료를 제공받습니다.