프로그래밍/GIT

mac에서 github 계정 여러개 관리하기(회사용/개인용)

p-a-r-k 2023. 7. 11. 11:44
반응형

회사용 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