두 개의 github 계정(개인, 회사)을 나눠서 이용하는 방법을 공유합니다.
일단은 셋팅이 하나도 되어 있지 않다는 전제하에 시작하겠습니다.
1. SSH-key 생성 및 등록
$ ssh-keygen -t rsa -b 4096 -C [이메일]
$ ssh-keygen -t rsa -b 4096 -C "dpudpu11@gmail.com"
입력하면 생성하려는 key의 이름 입력이 나오는데 기본값은 id_rsa
입니다. 저는 구분을 짓기 위해서/Users/dpudpu/.ssh/id_rsa_personal
라고 입력하겠습니다.
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/dpudpu/.ssh/id_rsa): /Users/dpudpu/.ssh/id_rsa_personal
같은 방식으로 또 다른 계정의 키를 하나 더 생성합니다. 키의 이름은 id_rsa_compnay
로 하겠습니다.
$ ssh-keygen -t rsa -b 4096 -C "dpudpu@naver.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/dpudpu/.ssh/id_rsa): /Users/dpudpu/.ssh/id_rsa_company
이렇게 하면 ~/.ssh
경로에 총 4개의 파일이 생성되었습니다. 생성된 키를 ssh-add
로 등록합니다.
id_rsa_company.pub
id_rsa_company
id_rsa_personal.pub
id_rsa_personal
$ ssh-add id_rsa_personal
$ ssh-add id-rsa_company
2. github에 등록하기
settings -> SSH and GPG keys -> New SSH key
를 들어갑니다
title에는 원하는 이름을
key에는 id_rsa_company.pub
의 키 값을 등록합니다.
키값은 아래의 명령어를 통하여 확인할 수 있습니다. 참고로 키값은 ssh-rsa ~~~
로 시작하는 긴 문자열입니다.
$ cat ~/.ssh/id_rsa_company.pub
같은 방식으로 또 다른 github 계정에 다른 키인 id_rsa_personal.pub
을 등록합니다.
3. ~/.ssh/config 설정
~/.ssh/config
파일을 설정합니다. 없다면 새로 만들어서 하시면 됩니다.
# company
Host company-github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_company
# personal
Host personal-github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_personal
연결이 되는지 ssh -T [host]
로 확인합니다.
$ ssh -T company-github.com
Hi dpudpu! You've successfully authenticated, but GitHub does not provide shell access.
$ ssh -T personal-github.com
Hi dpudpu-test! You've successfully authenticated, but GitHub does not provide shell access.
4. ~/.gitconfig 설정
~/.gitconfig
에 전역 설정을 하겠습니다.
[user]
email = dpudpu11@gmail.com
name = dpudpu
[includeIf "gitdir:~/Develop/company/"]
path = .gitconfig-company
includeIf
는 ~/Develop/company/
디렉터리 아래 있다면 ~/.gitconfig-compnay
파일을 불러옵니다.
~/.gitconfig-company
파일은 다음과 같습니다.
[user]
email = dpudpu@naver.com
name = dpudpu
중요 - email은 github의 email로 해야합니다.
이렇게 설정을 하면 평소에는 user.email
에 개인 계정인 dpudpu11@gmail.com
설정값으로 사용하고~/Develop/company/
디렉터리에서는 dpudpu@naver.com
를 사용하게 됩니다.
출처 : Git 계정 여러 개 동시 사용하기
5. 사용하기
~/Develop/company/
디렉토리에 git clone으로 리파지토리를 복사한 뒤에 해당 디렉토리에서 git config --list
를 입력하시면 아래와 같은 내용을 보실 수 있습니다.
user.email=dpudpu11@gmail.com
user.name=dpudpu
includeif.gitdir:~/Develop/company/.path=.gitconfig-company
user.email=dpudpu@naver.com
user.name=dpudpu
includeif.gitdir:~/Develop/company/
조건을 충족하기 때문에 .gitconfig-company
파일을 불러와 user.email을 덮어 씌웁니다.
해당 폴더에서 푸쉬를 하면 github 계정 dpudpu@naver.com
로 push 되고
다른 폴더 ex) ~/Develop/personal
에서 커밋하고 push하면 전역 설정인 dpudpu11@gmail.com
로 push 됩니다.
private repository clone
마지막으로 private repository를 clone을 하는 방법입니다.git clone [host]:[githubId]/[repository명]
[host]는 ~/.ssh/config 에서 설정한 host 입니다.
위의 리파지토리 clone을 하려면 다음 명령어를 입력하면 됩니다.
$ git clone personal-github.com:dpudpu/Study-Git.git
잘 되지 않는 부분이나 궁금한 부분 있으시면 댓글 남겨주세요.
'Git' 카테고리의 다른 글
2. git init 과 clone (0) | 2018.11.03 |
---|---|
1. 맥에서 git 설치 및 초기설정 (0) | 2018.11.03 |