[Git] 계정 두개 github
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 됩니다.