개인 프로젝트 · 회사 프로젝트 분리 — SourceTree 없이, 터미널만으로
이 글에서 다루는 것
- 하나의 Mac에서 GitHub 개인 계정과 회사 계정을 동시에 사용하는 방법을 설명
- SSH 키 분리 → SSH Config 설정 → gitconfig 분기 → 실제 push까지, 직접 겪은 병목 포인트를 포함해 한 번에 따라할 수 있도록 작성
왜 이 설정이 필요한가
GitHub 계정이 두 개 있다면 — 예를 들어 개인 계정(xxxx@gmail.com)과 회사 계정(yyyy@company.com) — 아무 설정 없이 사용하면 모든 commit이 글로벌로 설정된 한 계정으로만 올라간다. push도 마찬가지로 기본 SSH 키 하나로만 시도하기 때문에 권한 오류난다
이 문제를 해결하는 핵심은 두 가지이다
- SSH 키 분리 — 계정별로 다른 키를 사용하도록 설정
- gitconfig 분기 — 프로젝트(폴더)에 따라 commit 작성자를 자동으로 전환
전체 흐름 한눈에 보기
[1] SSH 키 생성 (개인용) └─ ~/.ssh/id_ed12345_personal └─ ~/.ssh/id_ed12345_personal.pub [2] GitHub 개인 계정에 공개 키 등록 └─ Settings → SSH and GPG keys → New SSH key [3] ~/.ssh/config 에 Host alias 추가 └─ github-personal → 개인 키 사용 └─ github.com → 회사 키 사용 (기존 그대로) [4] ~/.gitconfig 에 includeIf 추가 └─ ~/personal/ 폴더 → 개인 계정 자동 적용 └─ 그 외 모든 폴더 → 회사 계정 (글로벌 기본값) [5] 개별 프로젝트에 로컬 계정 지정 (선택) └─ git config user.email "xxxx@gmail.com"
SSH 키 생성
회사 계정은 이미 SSH 키가 있고 정상 동작 중이라면 건드리지 않아도 된다. 개인 계정용 키만 새로 만든다
ssh-keygen -t ed25519 -C "xxxx@gmail.com" -f ~/.ssh/id_ed12345_personal
실행하면 passphrase를 물어본다. 그냥 Enter 두 번 누르면 된다
생성 확인
ls ~/.ssh/ # id_ed12345_personal ← 개인 키 (절대 공유하면 안 됨) # id_ed12345_personal.pub ← 공개 키 (GitHub에 등록할 것)
💡 회사 키 파일명 확인 방법
ls ~/.ssh/로 파일 목록을 보면id_ed25519또는id_rsa형태로 되어 있습니다. 이후 config 설정에서 이 파일명을 그대로 사용한다
GitHub 개인 계정에 공개 키 등록
공개 키 내용을 복사한다
cat ~/.ssh/id_ed12345_personal.pub # ssh-ed25519 AAAA... 로 시작하는 한 줄이 출력된다. 전체 복사.
개인 GitHub 계정으로 로그인 후
1. Settings → SSH and GPG keys → New SSH key 2. Title: personal-mac (구분 가능한 이름으로) 3. Key type: Authentication Key 4. Key: 복사한 공개 키 붙여넣기 5. Add SSH key 클릭
⚠️ 회사 계정과 개인 계정을 혼동하지 않도록
공개 키를 잘못된 GitHub 계정에 등록하면 인증은 되지만 엉뚱한 계정으로 연결된다. 개인 이메일로 로그인했는지 꼭 확인해야 한다
SSH Config 설정
nano ~/.ssh/config
아래 내용을 입력합니다
# 개인 계정 Host github-personal HostName github.com User git IdentityFile ~/.ssh/id_ed12345_personal # 회사 계정 (기존 키 파일명에 맞게 수정) Host github.com HostName github.com User git IdentityFile ~/.ssh/id_ed67890
저장: Ctrl+X → Y → Enter
💡 nano 단축키
저장하고 나가기:Ctrl+X→Y→Enter
저장 없이 나가기:Ctrl+X→N
연결 테스트
ssh -T git@github-personal # → Hi xxxx! You've successfully authenticated ✅ ssh -T git@github.com # → Hi yyyy! You've successfully authenticated ✅
두 계정 모두 인증이 확인되면 다음으로 넘어간다
gitconfig 계정 분기 설정
commit 작성자(이름, 이메일)를 프로젝트 폴더에 따라 자동으로 전환하는 설정이다
개인용 gitconfig 파일 생성
nano ~/.gitconfig-personal
[user] name = xxxx email = xxxx@gmail.com
글로벌 gitconfig에 includeIf 추가
nano ~/.gitconfig
파일 맨 아래에 추가
[includeIf "gitdir:~/personal/"] path = ~/.gitconfig-personal
이제 ~/personal/ 폴더 안에서는 개인 계정이, 그 외에서는 글로벌(회사) 계정이 자동으로 적용된다
확인
# 개인 폴더 cd ~/personal git config user.email # → xxxx@gmail.com ✅ # 그 외 폴더 cd ~ git config user.email # → yyyy@company.com ✅
특정 프로젝트에만 개인 계정 지정 (선택)
~/personal/ 폴더 밖에 있지만 개인 계정으로 push하고 싶은 프로젝트가 있을 경우, 해당 프로젝트 안에서 로컬 설정을 지정할 수 있다
cd ~/workplace/claude-code-mastery git config user.name "xxxx" git config user.email "xxxx@gmail.com" # 확인 git config user.email # → xxxx@gmail.com ✅
이 설정은 해당 프로젝트 안의 .git/config에만 저장되며, 다른 프로젝트에는 영향을 주지 않는다.
우선순위 (높은 순) 로컬 설정 git config user.email (해당 프로젝트에만 적용)
↓
includeIf ~/personal/ 폴더일 때 자동 적용
↓
글로벌 설정 kim@softment.co.kr (기본값, 회사 계정)
새 프로젝트를 개인 계정으로 push하는 전체 흐름
# 1. 프로젝트 폴더로 이동 cd ~/workplace/claude-code-mastery # 2. git 초기화 (폴더 안에 .git이 없을 때만) git init # 3. 개인 계정 지정 (git init 이후에 실행해야 합니다) git config user.name "xxxx" git config user.email "xxxx@gmail.com" # 4. 파일 추가 및 첫 커밋 git add . git commit -m "first commit" # 5. GitHub에 저장소 생성 후, remote 추가 # github.com 대신 github-personal alias 사용 ← 핵심 git remote add origin git@github-personal:xxxx/claude-code-mastery.git # 6. push git branch -M main git push -u origin main
⚠️ 자주 하는 실수 — remote URL 복붙 금지
GitHub에서 안내하는 기본 URL을 그대로 복붙하면 안 된다.
❌ git@github.com:xxxx/project.git✅ git@github-personal:xxxx/project.git
github.com을github-personal로 바꾸는 것만 기억하면 됩니다.
병목 포인트 모음 — 이것만 알면 막힘 없다
| 상황 | 원인 | 해결 |
|---|---|---|
fatal: not in a git directory | git init을 하지 않았거나 다른 경로에서 실행 | 해당 프로젝트 폴더로 이동 후 git init 먼저 실행 |
| push는 됐는데 엉뚱한 계정으로 올라감 | remote URL이 github.com으로 되어 있음 | git remote set-url origin git@github-personal:... |
| SSH 인증 실패 | 공개 키가 GitHub에 등록되지 않았거나 config Host가 틀림 | ssh -T git@github-personal 로 테스트 후 확인 |
| git config 설정했는데 회사 계정으로 나옴 | --global 옵션을 쓰거나 git 디렉토리 밖에서 실행 | 프로젝트 폴더 안에서 --global 없이 실행 |
| ls ~/.ssh/ 에 .git 폴더 없음 | git init을 잘못된 위치에서 실행 | 해당 프로젝트 폴더 안에서 git init 재실행 |
최종 정리
| 작업 | 설명 |
|---|---|
| SSH Config Host alias | 어떤 SSH 키로 인증할지 결정 |
| includeIf “gitdir:” | 폴더 경로에 따라 commit 계정 자동 전환 |
| git config (로컬) | 특정 프로젝트에만 계정 지정 (가장 우선순위 높음) |
| remote URL alias | push/pull 시 올바른 계정으로 인증되도록 설정 |
✅ 설정 완료 후 체크리스트
ssh -T git@github-personal→ 개인 계정 이름 확인ssh -T git@github.com→ 회사 계정 이름 확인
개인 프로젝트에서git config user.email→ 개인 이메일 확인
회사 프로젝트에서git config user.email→ 회사 이메일 확인
SourceTree 등 GUI 도구 없이 터미널만으로 두 계정을 완전히 분리 운영할 수 있다. 설정은 한 번만 해두면 이후 프로젝트마다 remote URL의 alias만 신경 쓰면 된다.