회사용 macbook에서 개인 계정의 작업물을 수정하고자할 때, 세팅을 해두지 않으니까 작업하려면 여러가지로 불편하기도 해서 세팅을 하도록 한다.
1. ssh key를 생성한다.
$ ssh-keygen -t rsa -b 4096 -C "회사 git 이메일"
입력하면 Enter file in which to save the key 라고 키를 저장할 파일을 입력하라고 한다. (기본은 id_rsa라는 이름을 가진다)
본인은 아래와 같이 /Users/parkjh/.ssh/company-git 이라고 입력하였다.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
암호를 설정하라는 위 단계는 엔터 두번으로 건너뛴다.
생성하면 ~/.ssh 경로에 company-git과 company-git.pub 파일 2개가 생긴다. (ls 명령어로 확인)
이렇게 한번 더 personal-git이란 파일로도(다른 이름으로 정해도됨 개인용) 개인용 key도 생성하면,
이론상 총 4가지의 파일이 생긴다. company-git, company-git.pub, personal-git, personal-git.pub ㅇㅋ?
2. ssh-agent 키등록
키사용을 하려면 아래와 같이 등록하여야 한다..
$ ssh-add ~/.ssh/{company-git-ssh-key}
$ ssh-add ~/.ssh/{personal-git-ssh-key}
위에 내용대로 했다면 "ssh-add ~/.ssh/company-git" 같이 key 이름을 넣어주면 된다.
등록하면 Identity added: /Users/parkjh/.ssh/company-git (메일) 처럼 추가되었다고 나옴 ㅋ
3. github에 등록
settings -> SSH and GPG keys -> new SSH key
title은 알아볼수있는거로 아무거나 하고, key 내용은 *.pub의 내용을 company와 personal 각각 2번 등록해주면 된다.
ex) "cat ~/.ssh/company-git.pub" 명령으로 key 내용을 확인가능하다. (복붙하면 됨)
4. ~/.ssh/config 파일 세팅 (없다면 생성)
{company-git-ssh-key-name} 부분에 key name을 넣어주면된다. 여기선 "company-git"
# company
Host company-github.com
HostName github.com
User git
IdentityFile ~/.ssh/{company-git-ssh-key-name}
# personal
Host personal-github.com
HostName github.com
User git
IdentityFile ~/.ssh/{personal-git-ssh-key-name}
성공했다면, 아래와 같이 입력하게되면 연결확인이 가능하다.
5. git global 세팅
~/.gitconfig 파일을 먼저 수정할텐데, 회사정보를 기준으로 할거면 회사 정보를 적으면되고 아니면 개인정보를 적는다.
어떤 정보를 적었냐에 따라 ~/.gitconfig-personal or ~/.gitconfig-company파일을 하나 더 생성할것이다..
본인은 ~/.gitconfig 에는 회사계정을 기준으로 하고, 파일 맨 아래 includeIf 부분에 개인용으로 사용할 git 폴더를 지정하고,
파일명은 .gitconfig-personal로 설정하였다.
[user]
name = parkjunghwan
email = {회사이메일..}
...
...
[includeIf "gitdir:~/Documents/dev-personal"]
path = .gitconfig-personal
그럼 이제 .gitconfig-personal 를 생성하면된다.
6. 매무리 git에서 clone 테스트
개인레포에서 "Code"를 눌러 SSH탭의 주소를 복사한다.
아래와 같이 일부 수정하여 clone 하면 정상적으로 클론되는걸 확인 할수 있다..ㅋ
(수정한건 git@github.com < 요부분을 @앞부분에 company-, personal- 붙여주면 됨)
git clone git@company-github.com:{닉네임}/{레포 이름}.git
git clone git@personal-github.com:{닉네임}/{레포 이름}.git
대신 clone 할때 폴더는 설정했던대로, ~/.gitconfig에 지정한 정보는 아무데서나 가능하지만,
~/.gitconfig-personal 처럼 폴더를 따로 지정했다면 (본인은 /Documents/dev-personal)
개인용 clone 할때는 dev-personal 폴더에서 진행해야 한다.
* 이미 기존에 remote가 설정된 프로젝트들은 재설정 해줘야 한다. ( git remote set-url ... )
'프로그래밍 > GIT' 카테고리의 다른 글
git pull refusing to merge error (0) | 2019.03.04 |
---|