Developer

[Git] 계정 두개 github

Chars4785 2020. 12. 24. 00:23

1. SSH-key 생성 및 등록

$ ssh-keygen -t rsa -b 4096 -C [이메일]

1. 등록하고 싶은 위치 물어봅니다. 만약 2 계정으로 하고 싶다면 이름을 변경하거나 파일을 나눠주세요 

( 전 파일을 house 로 하나 더 만들었습니다.

2. 비밀번호 등록 ( 그냥 enter치면 안만들어짐 )

3. 등록

id_rsa_company.pub   
id_rsa_company      
id_rsa_personal.pub
id_rsa_personal

$ ssh-add ./house/id_rsa_personal
$ ssh-add id-rsa_company

2. github에 등록하기

settings -> SSH and GPG keys -> New SSH key 를 들어갑니다

1. title 

아무거나 본인이 구분할 수있는 값으로


2. key에는 id_rsa_company.pub 의 키 값을 등록합니다.

$ cat ~/.ssh/id_rsa_company.pub 통해서 하면 됩니다.

키값은 아래의 명령어를 통하여 확인할 수 있습니다. 참고로 키값은 ssh-rsa ~~~로 시작하는 긴 문자열입니다.

3. ~/.ssh/config 설정

~/.ssh/config 파일을 설정합니다. 없다면 새로 만들어서 하시면 됩니다.

# company 주석입니다. 
Host company-github.com
HostName github.com
User company 
IdentityFile ~/.ssh/id_rsa_company 

# personal 
Host personal-github.com
HostName github.com User git 
IdentityFile ~/.ssh/house/id_rsa_personal

연결이 되는지 ssh -T [host] 로 확인합니다.

$ ssh -T company-github.com
Hi dpudpu! 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를 사용하게 됩니다.

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 됩니다.

 

출처 :dublin-java.tistory.com/62