Light Blue Pointer
본문 바로가기
TIL(Develop)

IntelliJ에서 Git 계정 분리하여 여러개 사용하기

by 개발바닥곰발바닥!!! 2025. 10. 29.

회사에서 사내망 프로젝트만 진행하다가 사외망 프로젝트를 진행하게 되어 외부망 깃 계정을 만들었다.

문제는 내 맥북의 인텔리제이에서 개인 Git을 로그아웃하지 않고 두개를 동시에 쓰고 싶었다는 점이다.

그리고 회사 프로젝트에 개인 계정으로 커밋 잘못 하는 일을 막고싶었다….(한 번 실수했다)

1. clone 분리

1-1. 키 생성하기

터미널에 다음을 입력한다.

개인용 키

ssh-keygen -t rsa -b 4096 -C "[personal_email@example.com](<mailto:personal_email@example.com>)" -f ~/.ssh/id_rsa_github_personal

회사용 키

ssh-keygen -t rsa -b 4096 -C "[work_email@example.com](<mailto:work_email@example.com>)" -f ~/.ssh/id_rsa_github_work

1-2. 키 파일 확인하기

터미널에 다음을 입력한다.

ls -al ~/.ssh

결과는 다음과 같이 나오면 된다.

❯   ls -al ~/.ssh
total 48
drwx------   8 minisun  staff   256 Oct 24 09:49 .
drwxr-x---+ 54 minisun  staff  1728 Oct 24 09:49 ..
-rw-------@  1 minisun  staff  3389 Oct 24 09:49 id_rsa_github_personal
-rw-r--r--@  1 minisun  staff   746 Oct 24 09:49 id_rsa_github_personal.pub
-rw-------@  1 minisun  staff  3389 Oct 24 09:49 id_rsa_github_work
-rw-r--r--@  1 minisun  staff   750 Oct 24 09:49 id_rsa_github_work.pub
-rw-------   1 minisun  staff   864 Oct 17 11:07 known_hosts
-rw-r--r--   1 minisun  staff   104 Oct 17 11:06 known_hosts.old

~ at 09:51 
❯ 

키 파일이 잘 생성된 것을 알 수 있다!

1-3. 설정 파일 생성하기

nano ~/.ssh/config

그리고 붙여넣기

Host github-personal
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_rsa_github_personal

Host github-work
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_rsa_github_work

Ctrl + X ⇒ yes 해서 저장한다.

1-4. 퍼블릭 키 복사해서 GitHub에 등록

pbcopy < ~/.ssh/id_rsa_github_work.pub
pbcopy < ~/.ssh/id_rsa_github_personal.pub

해서 나온 값을 복사해서

각각 GitHub에서

👉 Settings > SSH and GPG keys > New SSH key 로 이동하여 붙여넣는다

이름은 자유!

나는 다음과 같이 생성했다.

 

 

📝 회사 리파지토리에서 SSO 인증을 요구하는 경우

Enable SSO 버튼 클릭,
Enable SSO 버튼이 없는 경우
    https://github.com/orgs/vtt-media-ai/sso 링크 접속 후
    Authorize SSH key 버튼 클릭

 

1-5. Public Key 등록 확인

터미널에 다음을 입력

ssh -T github-work

다음과 같이 나오면 성공

at 10:19 
❯ ssh -T github-work

Hi Username! You've successfully authenticated, but GitHub does not provide shell access.

1-6. 프로젝트마다 다른 Git 계정 설정

1-6-1. 이미 클론된 프로젝트에 대해 리모트만 바꿔주기

프로젝트마다 어떤 계정을 쓸지 리모트 URL로 결정한다.

1-6-1-1. 터미널에서

# 개인 계정으로 쓰는 리포
git remote set-url origin git@github-personal:PERSONAL/repo.git

# 회사 계정으로 쓰는 리포
git remote set-url origin git@github-work:COMPANY/repo.git

1-6-1-2. IntelliJ UI로

VCS > Git > Remotes… → origin URL을

git@github-personal:... 또는 git@github-work:... 로 수정 → OK

리모트의 Host 별칭(github-personal / github-work)이 ~/.ssh/config의 키를 자동으로 골라준다.

ssh -T github-personal
ssh -T github-work
git fetch
git push

각각 “You've successfully authenticated”가 뜨면 정상.

1-6-2. 클론 단계부터 계정 분리하기

회사 계정 리포 클론 받을 때

회사 계정으로 클론할 때는 꼭 아래처럼 github-work 호스트 이름을 써야 한다

git clone git@github-work:COMPANY_ORG/REPO_NAME.git

지정된 디렉토리에 클론하기~

git clone git@github-work:COMPANY_ORG/REPO_NAME.git my-folder-name

2. commit 분리

회사 디렉토리는 ~/Workspace고 개인 디렉토리는 ~/Personal 로 구분함

/Users/minisun/
├─ .gitconfig              ← 항상 적용
├─ .gitconfig-work         ← /Workspace 아래에서만 적용
├─ .gitconfig-personal     ← /Personal 아래에서만 적용
├─ Workspace/
│   └─ repo들…
└─ Personal/
    └─ repo들…

전체 계정 설정 ~/.gitconfig

# ~/.gitconfig

[user]
name = minisundev
email = minisundev@gmail.com

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

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

회사 계정 설정 ~/.gitconfig-work

# ~/.gitconfig-work
[user]
name = keenminisundev
email = keenminisundev@gmail.com

개인 계정 설정 ~/.gitconfig-personal

# ~/.gitconfig-personal
[user]
name = minisundev
email = minisundev@gmail.com

검증

cd /Workspace/어떤레포
git config user.name
git config user.email
cd /Playground/어떤레포
git config user.name
git config user.email

각각 다르게 나오면 성공

사람은 실수하지만 설정은 배신하지 않는다

한번의 커밋 실수 이후에 방지하고자 이렇게 강제 적용을 했다