이 글은 AI로 작성된 글입니다. 임시로 만든 글이며, 확인되지 않은 정보가 있을 수 있습니다.
한 대의 노트북에서 개인 프로젝트와 회사 업무를 병행할 때, 폴더 위치에 따라 커밋 이메일, SSH 인증 키, 의존성 패치 주소가 자동으로 전환되도록 설정하는 환경 구축 가이드입니다.
~/Dev/): 개인 계정 정보 및 인증 사용~/Dev/company/): 회사 계정 정보 및 인증 자동 전환includeIf, SSH Host 별칭, Git insteadOf 주소 치환각 계정에서 사용할 고유한 SSH 키를 생성합니다. (파일명으로 구분)
# 1. 개인용 키 생성
ssh-keygen -t ed25519 -C "personal@email.com" -f ~/.ssh/id_ed25519_personal -N ""
# 2. 회사용 키 생성
ssh-keygen -t ed25519 -C "work@company.com" -f ~/.ssh/id_ed25519_work -N ""
~/.ssh/config 파일을 수정하여, 접속 시 어떤 키를 사용할지 정의합니다.
# ~/.ssh/config 수정 (없으면 생성)
cat <<EOF >> ~/.ssh/config
# 개인용 (기본 github.com)
Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_ed25519_personal
# 회사용 (별칭 github.com-company)
Host github.com-company
HostName github.com
User git
IdentityFile ~/.ssh/id_ed25519_work
EOF
메인 .gitconfig에서 기본 개인 정보를 설정하고, 회사 폴더 진입 시 전용 설정을 불러오도록 연결합니다.
# 1. 전역 개인 계정 설정
git config --global user.name "YourName"
git config --global user.email "personal@email.com"
# 2. ~/Dev/company/ 폴더 하위일 때 회사 전용 설정 로드
git config --global includeIf."gitdir:~/Dev/company/".path "~/.gitconfig-company"
~/.gitconfig-company)회사 폴더 내에서만 적용될 커밋 정보와 의존성 주소 치환 규칙을 작성합니다.
# ~/.gitconfig-company 파일 생성
cat <<EOF > ~/.gitconfig-company
[user]
name = YourName_Work
email = work@company.com
[url "git@github.com-company:"]
insteadOf = git@github.com:
EOF
💡 Note:
insteadOf규칙 덕분에 프로젝트 내 여러 의존성 등이 사용하는git@github.com주소를 Git이 내부적으로github.com-company로 바꿔주며, 이는 다시 SSH Config를 타고 회사용 키로 인증됩니다.
생성한 키를 메모리에 등록하여 즉시 사용 가능하게 합니다.
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519_personal
ssh-add ~/.ssh/id_ed25519_work
각 별칭을 통해 GitHub가 사용자를 정확히 식별하는지 확인합니다.
ssh -T git@github.com ➔ Hi [PersonalID]!ssh -T git@github.com-company ➔ Hi [CompanyID]!회사 폴더(~/Dev/company/) 내부의 저장소로 이동하여 확인합니다.
git config user.email ➔ work@company.com 확인git fetch 시 에러 없이 작동하면 성공insteadOf가 주소를 별칭으로 가로챔.