develog

[mac] 디렉토리별로 github 계정 분리하기 (개인용, 업무용) 본문

카테고리 없음

[mac] 디렉토리별로 github 계정 분리하기 (개인용, 업무용)

냐옴 2021. 8. 3. 14:44
개요
  1. ssh 설정
    1.1. 개인용, 업무용 ssh key 를 각각 하나씩 생성한다
    1.2. 생성한 ssh key 중에서 public key 를 github 사이트에 등록한다
    1.3. ssh config 파일에 github 호스트를 설정한다
  2. git config 설정
    2.1. git config 로 global user 를 설정한다
    2.2. 특정 디렉토리에서 사용할 git user 를 설정한다
    2.3. 특정 디렉토리와 그 외 디렉토리에서 git user 가 다르게 표시되는지 확인한다

 

1.1. 개인용, 업무용 ssh key 생성 (public, private)

# 개인용 id_rsa-personal
$ ssh-keygen -t rsa -b 4096 -P '' -C 'github-personal@office-mac' -f ~/.ssh/id_rsa-personal

# 업무용 id_rsa-company
$ ssh-keygen -t rsa -b 4096 -P '' -C 'github-company@office-mac' -f ~/.ssh/id_rsa-company

 

1.2. 생성한 ssh key 중에서 public key 를 github 사이트에 등록한다

  • github.com > Settings > SSH and GPG keys > New SSH key > Title, Key 입력 > Add SSH key
# 개인용 pub key 클립보드로 복사 후
$ pbcopy < id_rsa-personal.pub

# github.com personal 계정에 SSH key 등록
Title: personal@office-mac
Key: <Paste>


# 업무용 pub key 클립보드로 복사 후
$ pbcopy < id_rsa-company.pub

# github.com company 계정에 SSH key 등록
Title: company@office-mac
Key: <Paste>

 

1.3. ~/.ssh/config 파일에 github 호스트를 설정한다

  • github ssh 호스트 설정을 등록한다
  • 개인용, 업무용 private key 파일을 다르게 설정한다
$ vi ~/.ssh/config

# 개인용
Host github-personal
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_rsa-personal
    IdentitiesOnly yes

# 업무용
Host github-company
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_rsa-company
    IdentitiesOnly yes
  • 비밀번호 입력 없이 ssh 접속이 되는지 테스트한다
$ ssh -T git@github-personal
# Hi XXX! You've successfully authenticated, but GitHub does not provide shell access.

$ ssh -T git@github-company
# Hi XXX! You've successfully authenticated, but GitHub does not provide shell access.

 

2.1. git config 명령어로 global user 를 설정한다

  • 개인용 계정을 global 로 등록
$ git config --global user.name personalId
$ git config --global user.email personalId@email.com

 

2.2. 특정 디렉토리에서 사용할 git user 를 설정한다

~/.gitconfig-company 파일 생성
  • 업무용 계정을 별도 설정 파일에 만든다
$ vi ~/.gitconfig-company
[user]
    name = companyId
    email = companyId@email.com
~/.gitconfig 파일 수정
  • 파일 마지막 부분에 업무용 설정파일 내용을 추가한다
$ vi ~/.gitconfig
# 아래 내용 추가
# includeIf 대소문자 주의
# 경로 마지막에 슬래시(/) 넣어야 동작함
# ~/develop/company/ 경로에서는 ~/.gitconfig-company 파일을 사용
[includeIf "gitdir:~/develop/company/"]
    path = ~/.gitconfig-company

 

2.3. 특정 디렉토리와 그 외 디렉토리에서 git user 가 다르게 표시되는지 확인한다

개인용 프로젝트 생성후 git 사용자 확인
  • 디렉토리 경로 주의 ~/develop/personal/
# 개인용 프로젝트 생성
$ mkdir -p ~/develop/personal/proj1
$ cd ~/develop/personal/proj1
$ git init # git init 을 해야 변경된 사용자 확인이 가능

# git 사용자 확인
$ git config --show-origin user.name
$ git config user.name

업무용 프로젝트 생성후 git 사용자 확인
  • 디렉토리 경로 주의 ~/develop/company/ 
# 업무용 프로젝트 생성
$ mkdir -p ~/develop/company/proj1
$ cd ~/develop/company/proj1
$ git init # git init 을 해야 변경된 사용자 확인이 가능

# git 사용자 확인
$ git config --show-origin user.name
$ git config user.name

 

Comments