본문 바로가기
분류 안된 것

git 계정이 여러개인 경우의 루트폴더를 이용하여 config 분리

by 달나라외계인 2025. 11. 21.

가끔 git 계정을 하나의 pc에서 여러곳에서 사용하는 경우가 있습니다. 회사계정과 개인계정이 따로 있는 경우 같이 말이죠.

이런 경우 git config --global 로 email, name을 지정해서 쓰시면 간혹 실수로 종종 commit을 다른 계정의 email와 name을 쓰는 경우가 발생합니다. 이미 commit 한 경우 commit 를 변경할 권한이 없다면 좀 난감할 때가 있죠.

 

이럴 때를 대비하여 계정별로 다른 루트폴더를 지정해서 하위폴더 밑으로 Repository를 Clone한 후 .gitconfig를 폴더에 따라 동작하게 만들어 놓는다면 좀 더 쉽게 이런 실수에서 벗어날 수 있습니다.

 

먼저 git에 관한 global 설정이 있는 .gitconfig로 가봅니다.
.gitconfig는 홈디렉토리에 가보면 찾으실 수 있습니다. 보통 다음의 경로에 있습니다.

windows C:/Users/ID/.gitconfig
linux ~/.gitconfig


.gitconfig 파일을 텍스트 편집기를 통해 열고 하단에 다음과 같이 추가합니다.
특정 루트 폴더에 따라 .gitconfig를 분기하고 싶을 경우입니다.

[includeIf "gitdir:특정디렉토리"]
path = ~/.gitconfig-work


이렇게 하면 특정디렉토리 밑의 repository는 ~/.gitconfig-work 파일을 config에 포함해서 사용하게 됩니다.

주의할 점은 gitdir: 과 특정디렉토리 사이에 공백문자를 삽입하면 제대로 동작하지 않습니다.

 

이제 폴더에 따라 추가적으로 include 시키려 하는 ~/.gitconfig-work 파일을 생성하고 다음처럼 설정을 추가하면 됩니다.

[user]
name = 이름
email = 이메일

 

설명은 끝이지만 혹시 이해가 되지 않을까봐 예시를 추가로 놓습니다. 위와 똑같은 얘기라 필요하신 분만 펼쳐보세요.

더보기

C:/CodePersonal 와 C:/CodeWork 폴더에 따라 name, email를 따로 설정하고 싶은 경우

 

~/.gitignore

...
[includeIf "gitdir:C:/CodePersonal"]
path = ~/.gitconfig-personal

[includeIf "gitdir:C:/CodeWork"]
path = ~/.gitconfig-work


~/.gitconfig-personal

[user]
name = nanana
email = nanana@nanana.nana

 

~/.gitconfig-work

[user]
name = worker
email = worker@worker.worker