최근 GitHub 계정을 취미용과 외부활동용으로 분리하는 작업을 진행했었습니다. 분리하고 보니, 고민이 되는 부분은 local에서 작업을 하고 난 후, Commit을 할 때였습니다. 지금까지 알고 있던건 시스템 전역으로 Git 정보를 설정하는 것 밖에 몰랐었거든요.
아무 생각없이 Commit을 했다가 다른 계정으로 레포에 기록이 올라간 걸 보고 Git 명령어를 살펴보게 되었습니다.
Git을 처음 사용하셨을 때, 설치하고 난 후에는 아래와 같이 설정을 해줘야 한다라는 글을 많이 보시지 않았나요?
git config --global user.name "이름"
git config --global user.email "이메일"
명령어에서도 보이다시피, 해당 명령어는 내 컴퓨터(local)의 전역(global) 설정에 관해서 이름과 이메일을 설정하게 됩니다. 만약 여러개의 계정으로 활동하고 있는데 프로젝트마다 다르게 하려면 어떻게 해야할까요?
정답은 바로 local 환경설정에 있습니다.
설정 우선순위
Git은 설정을 읽을 때 특정 우선순위를 따릅니다:
1. 로컬 설정 (.git/config)
2. 글로벌 설정 (~/.gitconfig또는C:\Users\<Username>\.gitconfig)
3. 시스템 설정 (/etc/gitconfig또는C:\Program Files\Git\etc\gitconfig)
Git에서 사용되는 Config는 3종류로, 우선순위는 Local > Global > System 순서입니다. 로컬 설정의 경우에는 git init으로 초기화 과정을 진행하는데 이 프로젝트의 .git 폴더 안에 local config가 생성됩니다.
그래서 프로젝트마다 설정이 가능하게 됩니다.
각 환경 설정을 확인하고 싶다면 아래의 명령어로 가능합니다.
git config --local --listgit config --global --listgit config --system --listgit config --list (모든 설정 조회)GitHub는 Commit의 이메일 주소를 사용하여 Commit을 깃허브 계정과 연동합니다. 그렇기 때문에, 이름은 틀려도 상관없지만 이메일 정보가 다르면 내 GitHub 계정이 제대로 반영되지 않게 됩니다.
다중계정을 사용하고 있다면, 이 역시 이메일이 중요합니다.
그리고 프로젝트마다 따로 Git계정의 이메일을 설정해두면 문제가 사라지죠.
git config --local user.name "이름"
git config --local user.email "이메일"
로컬 계정 설정은 간단합니다. --global 대신 --local로 설정하면 끝나게 됩니다.