[Git] 한 컴퓨터에서 여러 계정 사용하기

강버섯·2021년 12월 20일
0

GIT

목록 보기
1/4
post-thumbnail

👉 발단

인턴을 시작하게 되면서 개인 계정 + 회사 계정을 한 컴퓨터에서 사용하게 되었다.
개인 컴퓨터를 사용하는 것이 편해서 회사 컴퓨터를 안빌렸는데, 기존에 사용하던 계정이 global로 선언되어 있어 회사 계정에 개인 계정으로 commit을 하는 등의 대참사를 경험하고 얼레벌레 넘어가며 사용하던 것을 제대로 정리해놓기로 했다.🥲

PR 보내려고 깃에 들어갔더니 commit이 개인 계정으로 되어있었을 때의 황당함이란,,,,,

👉 SSH key

git을 사용할 때에는 그냥 대충 http를 사용해서 진행했는데, 이번에서야 SSH key 인증을 사용했다.

각 계정에서 사용할 SSH key를 생성해서 각각의 계정에 등록해주도록 한다.
즉, 2개의 SSH key를 생성해주면 된다.

- SSH 생성하기

일단 터미널 창을 띄워주고,

$> ssh-keygen -t rsa -C "accountA@mail.com" -f "id_rsa_accountA"
$> ssh-keygen -t rsa -C "accountB@mail.com" -f "id_rsa_accountB"

명령어를 통해 2개의 SSH key를 생성한다.
생성 시 사용하는 이메일은 각 깃허브에서 사용하는 이메일을 넣어주면 된다.

그리고 생성한 키 등록.

$> ssh-add id_rsa_accountA
$> ssh-add id_rsa_accountB

이렇게 생성한 키들은 ~/.ssh 하에 저장된다.

$> ls ~/.ssh

를 하면 생성된 ssh key들을 확인할 수 있다.
SSH key는 개인키(id_rsa_accountA)와 공개키(id_rsa_account.pub) 두가지가 생성이 된다.

- 생성한 SSH key 적용해주기

앞선 과정을 통해 생성한 키들을 이제 적용시켜주면 된다.
로컬 환경에서 어떤 때에 어떤 계정을 사용해줄 것인지를 알려주는 과정이라고 보면 된다.

1. ~/.ssh/config 수정

$> vi config

를 해서 config 파일을 열고 다음과 같이 작성해주면 된다.

# A account
Host github.com-accountA
	HostName github.com
	User git
	IdentityFile ~/.ssh/id_rsa_accountA

# B account
Host github.com-accountB
	HostName github.com
	User git
	IdentityFile ~/.ssh/id_rsa_accountB

"github.com-" 뒤에 붙는 단어는 구분할 단어를 마음대로 적어주어도 상관 없다.
그냥 본인이 어떤 단어로 구분했는지만 기억해놓으면 됨.

2. ~/.gitconfig 파일 수정

각각의 계정을 사용하는 프로젝트 폴더에서 local로 계정을 설정해줘도 되지만 나는 그냥 전체에서 설정해줬다.
일단은 회사 계정은 한 폴더에서만 사용하고 나머지들은 전부 개인 계정을 사용하고 있기 때문에,,,,,

$> vi ~/.gitconfig

를 통해 .gitconfig 파일을 열어주고 다음과 같이 작성해준다.

# global에서 사용하게 되는 설정
[user]
	email = accountA@mail.com
	name = accountA
    
# local 사용 설정
[includeIf "gitdir:~/사용 dir"]
	path = .gitconfig-accountB

[user]에 작성된 내용은 global로 적용되는 git 계정이고 includeIf를 사용해 특정 폴더 하에서 사용할 git 계정을 설정해줬다.

이제 path에 적은 파일을 생성해주면 된다.

$> vi ~/.gitconfig-accountB

를 통해 .gitconfig 파일을 생성해주고

[user]
	email = accountB@mail.com
	name = accountB
[github]
	user = git

와 같이 새로운 account 설정을 적어주면 된다.
global 설정을 하지 않고 local만을 사용하길 원한다면 ~/.gitconfigincludeIf를 통해 파일 설정들을 적어주고, 각각 account의 ~/.gitconfig-account 파일을 생성해 path에 넣어주면 된다.

👉 Github에 SSH key 적용해주기

이제 생성한 ssh key들을 원격 저장소에 등록을 해주도록 한다.
생성된 두가지 키(개인키, 공개키) 중에 .pub로 끝나는 공개키를 복사해주도록 한다.

$> cat id_rsa_accountA.pub

를 통해 내용을 확인하면 이런식으로 나오는데

이메일 주소까지 전부를 복사해주면 된다.

이제 github로 이동을 해서, account > settings > SSH and GPS keys에서 생성한 SSH key를 등록해준다.

👉 원격 저장소 클론하기

이제 생성한 원격 저장소를 클론해오면 된다.
HTTPS가 아닌 SSH를 선택해 주소를 복사하고,

$> git clone git@github.com-accountA:accountA/repository.git

앞선 config 파일에 작성한 Host 값을 꼭!!사용해서 클론을 진행해준다.

이미 클론한 상태에서라면 remote url의 값을 갱신시켜주면 된다.

$> git remote set-url origin git@github.com-accountA:accountA/repository.git
profile
무럭무럭 버섯농장

0개의 댓글