저는 맥북에서 깃헙(Github) 개인 계정과 회사 계정을 사용하고 있는데
이 두 계정이 섞이는게 싫어서 각각 분리하여 사용하고 있습니다.
매번 설정할때마다 잘 기억이 나지 않아 이번 기회에 정리했습니다.
폴더별 깃헙 계정 분리하여 사용하기
gitconfig global 설정하기
~/.gitconfig 파일을 다음과 같이 작성합니다.
[user]
email = user@email.com
name = username
[includeIf "gitdir:~/personal/"]
path = ~/.gitconfig-personal
[includeIf "gitdir:~/company/"]
path = ~/.gitconfig-company
위와 같이 includeIf 를 사용하면 폴더별로 다른 config를 사용할 수 있습니다.
~/.gitconfig-personal 파일에는 개인용으로 사용하는 계정정보를 다음과 같이 작성합니다.
[user]
email = userA@email.com
name = userA
~/.gitconfig-company 파일에는 업무용으로 사용하는 계정 정보를 위와 비슷하게 작성합니다.
~/.gitconfig 파일을 위와 같이 작성하고 나면 아래 사항이 적용됩니다.
- ~/personal/ 폴더(하위 폴더 포함)는 ~/.gitconfig-personal 의 계정 정보를 사용합니다.
- ~/company/ 폴더(하위 폴더 포함)는 ~/.gitconfig-company 의 계정 정보를 사용합니다.
- 그 외 폴더는 ~/.gitconfig 의 계정 정보를 사용합니다.
해당 폴더가 어떤 계정을 사용하는지 확인하려면 다음 명령어를 사용합니다.
git config user.name
git config user.email
local config 에 설정하기
단일 저장소에 대해 Git 사용자 이름을 설정하려면 다음 명령어를 사용합니다.
git config --local user.name "anpigon"
git config --local user.email "anpigon@email.com"
local 설정은 global 설정보다 더 높은 우선 순위를 가집니다.
깃헙 계정/패스워드 사용하여 인증하기
GitHub는 패스워드 대신 사용할 수 있는 PAT(Personal Access Token)를 지원합니다.
PAT는 GitHub의 Settings > Developer Settings > Personal access tokens에서 생성할 수 있습니다.
깃헙 사용할때마다 매번 패스워드를 입력하는 것은 번거롭기 때문에 다음과 같이 인증 정보를 저장하는 방법을 사용합니다.
git config credential.helper store
credential.helper에 store 옵션을 주게되면 해당 리포지토리에는 인증 정보가 저장됩니다.
그리고 저장된 인증 정보를 사용하기 때문에 인증 절차가 생략됩니다.
모든 리포지토리에 적용하려면 다음 명령어를 사용합니다.
git config credential.helper store --global
그리고 git 클론할때 URL를 다음과 같은 형태로 사용합니다.
git clone https://[username]@github.com/[username]/[repository name].git
github.com 도메인 앞에 username를 붙여서 해당 유저로 인증하도록 알려줄 수 있습니다.
SSH를 사용하여 인증하기
저는 패스워드를 사용하는 것 보다 SSH 키를 사용하는 인증하는 방식을 선호합니다.
ssh 키 쌍 생성하기
ssh 인증을 사용하기 위해서는 SSH 키쌍을 생성해야 합니다.
SSH 키 생성 방법은 다음 Github 문서를 참고하였습니다.
새 SSH 키 생성하기
ssh-keygen -t ed25519 -C "your_email@example.com"
2개의 키 파일이 id_ed25519와 id_ed25519.pub 생성됩니다. 생성된 키 저장 위치는 ~/.ssh/ 입니다.
그 다음 ~/.ssh/config 파일을 열고 다음을 추가합니다.
Host *
AddKeysToAgent yes
UseKeychain yes
IdentityFile ~/.ssh/id_ed25519
SSH 개인 키를 ssh-agent에 등록합니다. (macos)
ssh-add --apple-use-keychain ~/.ssh/id_ed25519
Github에 SSH 공개키 등록하기
깃헙 문서 새 SSH 키 추가하기를 참고 하였습니다.
다음 명령어를 사용하여 공개키를 클립보드에 복사합니다.
pbcopy < ~/.ssh/id_ed25519.pub
그 다음 복사된 이 공개키를 GitHub의 Settings > SSH and GPG keys > New SSH Key에서 등록합니다.
개인용/업무용 SSH 분리하여 관리하기
Outsider님 블로그를 참고하여 작성하였습니다.
ssh를 개인용과 업무용을 분리하여 관리하려면 SSH 키를 각각 생성합니다. (SSH 키를 중복 등록을 할 수 없다.)
1. 개인용 ssh 키 생성하기
ssh-keygen -t ed25519 -C "your_email@example.com" -f "id_ed25519-personal"
2. 업무용 ssh 키 생성하기
ssh-keygen -t ed25519 -C "your_email@example.com" -f "id_ed25519-company"
그리고 ~/.ssh/config 를 다음과 같이 작성합니다.
Host github-personal.com
HostName github.com
User git
AddKeysToAgent yes
UseKeychain yes
IdentityFile ~/.ssh/id_ed25519-personal
Host github-company.com
HostName github.com
User git
AddKeysToAgent yes
UseKeychain yes
IdentityFile ~/.ssh/id_ed25519-company
위와 같이 설정하면 git 클론할때 다음과 같은 형태의 url를 사용해야 한다.
git@wgithub-personal.com:[username]/[repository name].git
git@wgithub-company.com:[username]/[repository name].git
이 글은 스팀잇에서 작성되었습니다.
https://steemit.com/hive-137029/@anpigon/20220605t141226727z
'개발' 카테고리의 다른 글
Buy Me a Coffee 후원 버튼: payoneer 연동하여 국내에서 사용하기 (2) | 2022.07.25 |
---|---|
사진 메타데이터 EXIF, 생성날짜(촬영날짜) 변경하기 (0) | 2022.06.13 |
최근에 아이맥이 너무 느려져서 외장 SSD에 MacOS를 설치했습니다. (0) | 2022.06.05 |
Metaplex 캔디머신v2을 사용하여 솔라나Solana에 NFT 발행하기 (Solana, NFT, Metaplex, Candy Machine v2) (0) | 2022.05.05 |
터미널에서 안드로이드 에뮬레이터 실행하기 (0) | 2022.04.12 |