Git 최초 설정: 사용자 이름과 이메일 설정하는 방법
Git과 같은 버전 관리 도구는 여러 사람이 함께 협업하는 것을 전제로 하고 있습니다. 따라서 저장소에 변경 사항을 추가하는 Commit 작업을 할 때 누구의 작업인지를 기록하는 것이 매우 중요합니다. Git에서는 커밋을 할 때 사용할 이름과 이메일을 지정할 수 있으며, 이 때 커밋에 기록된 이메일은 GitHub의 사용자를 연결할 때도 사용됩니다. Git을 사용한다면 설치 후 꼭 미리 설정해두기를 권장합니다.
- 관련 글: 운영체제 별 Git 설치 방법 총 정리
이 글에서는 Git 저장소에 커밋할 때 남길 사용자 이름과 이메일을 설정하는 방법을 소개합니다.
로컬에서 기본값으로 사용할 Git 사용자 이름과 이메일 설정(global 옵션)
현재 시스템의 모든 Git 작업에 사용할 사용자 이름(user.name)과 이메일을 설정하고자 한다면, global
옵션을 사용해 git config
명령어를 실행해줍니다.
$ git config --global user.name "Your Name"
$ git config --global user.email you@example.com
이 명령어를 실행하면, ~/.gitconfig
에 다음 내용을 추가해줍니다.
$ cat ~/.gitconfig
[user]
name = Your Name
email = you@example.com
이제 로컬 시스템에서 Git 커밋을 하면 항상 이 정보가 기본적으로 사용됩니다. 간단한 예제로 확인해봅니다.
$ mkdir git-user-1
$ cd git-user
$ git init
Initialized empty Git repository in /tmp/git-user-1/.git/
$ touch .gitignore
$ git add .
$ git commit -m'Initiazile repsitory'
[master (root-commit) 7c4f2a2] Initiazile repsitory
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 .gitignore
git show
명령어로 커밋 정보를 출력합니다.
$ git show 7c4f2a2
commit 7c4f2a27ac78f24fe65a2aa906e7c552e97d5c84
Author: Your Name <you@example.com>
Date: Sat May 15 17:14:44 2021 +0900
Initiazile repsitory
.....
Author가 Your Name <you@example.com>
으로 기록된 것을 확인할 수 있습니다.
저장소 별로 Git 사용자와 이메일 정보 설정하기
저장소 디렉터리에서 --global
없이 git config
를 사용하면 해당 디렉터리(저장소) 전용 설정을 추가할 수 있습니다.
$ git config user.name "LainyZine"
$ git config user.email lainyzine.com@gmail.com
이 설정은 저장소 별로 저장되며 global
옵션으로 설정한 정보보다 우선적으로 사용됩니다.
$ touch README.md
$ git add .
$ git commit -m'Add README.md'
$ git show 54ae508
commit 54ae5080f7928c8ab7a70e757e674a62f66c923a
Author: LainyZine <lainyzine.com@gmail.com>
Date: Sat May 15 17:21:36 2021 +0900
Add README.md
저장소에 셋업한대로 Author 값이 LainyZine <lainyzine.com@gmail.com>
으로 기록된 것을 확인할 수 있습니다.
현재 저장소의 user, email 설정값을 확인하는 방법
앞의 예제에서는 실제로 커밋을 하고, 커밋 작성자 값을 확인해보았습니다. git config
를 사용하면 커밋이 만들어질 때 적용될 사용자 이름과 이메일을 미리 확인해볼 수 있습니다.
$ git config user.name
LainyZine
$ git config user.email
lainyzine.com@gmail.com
다른 Git 저장소를 생성해서 다시 확인해봅니다.
$ mkdir -p /tmp/git-user-2
$ cd /tmp/git-user-2
$ git init
$ git config user.name
Your Name
$ git config user.email
you@example.com
이 저장소에는 로컬 설정이 사용되지 않아서, 이번에는 전역에 설정해둔 값이 사용되는 것을 확인할 수 있습니다. 저장소 별로 사용자 이름과 이메일을 다르게 설정하는 방법에 대해서는 다음 글에서 더 자세히 소개합니다.
더 나아가 GitHub을 사용하고 여러 개의 계정을 상시적으로 사용하는 경우 관련된 설정들을 추가로 해야합니다. 이에 관한 Git 설정에 대해서는 다음 글에서 소개합니다.
Git 사용자 이름과 이메일 정보 삭제하기
사용자 이름과 이메일 설정은 다음 명령어로 삭제할 수 있습니다.
# 전역 설정을 삭제
$ git config --global --unset user.name
$ git config --global --unset user.email
# 개별 저장소의 설정을 삭제
$ git config --unset user.name
$ git config --unset user.email
Git 저장소의 커밋 정보와 GitHub 사용자가 연결되는 원리
GitHub에서는 Git 커밋의 이메일 정보를 사용해 GitHub 사용자를 매칭합니다. GitHub 하나의 계정에는 Primary 메일을 비롯해 추가 이메일을 등록할 수 있습니다. 고유한 이메일 주소는 오직 하나의 계정에만 등록될 수 있기 때문에 이메일 주소로 GitHub 사용자와 매칭하는 것이 가능합니다.

따라서 GitHub에 등록된 이메일을 user.email
에 설정하고 커밋한 다음 GitHub 저장소에 Push하면 해당 이메일을 사용하는 GitHub 사용자로 자동으로 연결됩니다.

단, user.email
설정 자체는 그냥 텍스트 값이고, 이 사용자가 누구인지를 증명하는 로직은 가지고 있지 않습니다.
심화 주제: GPG 인증
로컬에서 user.email
을 설정하는 것은 커밋의 작성자가 누구인지를 보장하지 않습니다. 이 값을 다른 사용자의 이메일로 변경하고 커밋하면 GitHub에서는 다른 사람 프로필을 연결해버립니다. 이러한 문제를 방지하고 작성자 본인임을 증명하기 위해서 추가적으로 GPG 인증을 사용할 수 있습니다. 이렇게 추가 인증을 하는경우 GitHub의 커밋 정보에서 Verified 마크를 확인할 수 있습니다.
다음은 microsoft/TypeScirpt 저장소에서 가져와본 Verified 커밋의 예입니다.

거꾸로 말하면 Verified가 없는 커밋은 어떠한 경우에도 작성자를 보증할 수 없습니다.
GPG 인증은 이 글의 범위를 넘어서는 주제라서, 관심이 있다면 다음 글들을 참고해주세요.