본인은 현재 Github과 Gitlab을 동시에 사용하고 있다.
회사에서는 주로 Gitlab을 사용하고,
개인 개발, 사이드 팀 프로젝트에서는 Github를 사용하고 있다.
최근에 회사에 입사했을 때 기존에 Github만 사용했던 터라 전역으로 Git 설정을 해두어서 곤란했었다.
따라서 올바르게 각각 환경을 설정하는 방법을 공유하고자 한다.
우선 글을 들어가기 앞서
Github와 Gitlab은 둘 다 Git을 기반으로 한 원격 코드 저장소 및 버전 관리 플랫폼이다.
결국 Git을 사용하는건 동일하기 때문에
이 디렉토리는 GitHub계정으로, 이 디렉토리는 GitLab 계정으로 push 한다고만 명확하게 처리해놓으면 해결 된다는 것을 사전에 알리고 시작하도록 하겠다.
1. SSH 발급
기본적으로 git을 이용하려면 ssh를 발급받아야한다.
나는 기존에 발급받고 등록해둔 ssh가 있다면 과감하게 다 삭제하고 깔끔하게 다시 하는걸 추천한다.
괜히 꼬이면 골치아픔...
우선 gitbash (혹은 iTerm)를 열고 Github용 ssh와 Gitlab용 ssh 즉, 두개를 발급 받는다.
# github ssh
ssh-keygen -t rsa -b 4096 -C "github_email@example.com" -f ~/.ssh/github_id_rsa
# gitlab ssh
ssh-keygen -t rsa -b 4096 -C "gitlab_email@example.com" -f ~/.ssh/gitlab_id_rsa
참고로 ssh 발급 명령어를 입력하면 여러가지 질문을 받는데 그냥 계속 엔터 누르면 된다.
디폴트 설정이 최고
궁금한 분들을 위해 각 질문들은 아래오 같다.
- Enter file in which to save the key -> 공개키 생성 위치 - 기본경로로 생성하기 때문에 엔터
- Enter passphrase -> 패스워드입력 - 엔터
- Enter same passphrase again -> 패스워드 재입력 - 엔터
이와 같이 귀여운 그림이 나오면 발급이 완료된것이다.
2. SSH 에이전트 설정, SSH 설정 파일 생성
다음은 SSH 에이전트에 두 개의 키를 추가하여 각 플랫폼에서 적절한 키를 사용하도록 설정하겠다.
# SSH 에이전트 시작
eval "$(ssh-agent -s)"
# GitHub SSH 키 추가
ssh-add ~/.ssh/github_id_rsa
# GitLab SSH 키 추가
ssh-add ~/.ssh/gitlab_id_rsa
그리고 SSH 설정 파일을 생성하겠다.
원래는 없기 때문에 생성 해주는 것이다. 파일이 없어도 놀라지 말것!
# 설정 파일 생성 후 편집기 열어 작성
vim ~/.ssh/config
이후 설정 파일에 아래와 같이 입력해준다.
복붙 하십셔
# GitHub 설정
Host github.com
User git
HostName github.com
IdentityFile ~/.ssh/github_id_rsa
IdentitiesOnly yes
# GitLab 설정
Host gitlab.com
User git
HostName gitlab.com
IdentityFile ~/.ssh/gitlab_id_rsa
IdentitiesOnly yes
이제 cat 명령어를 통해 ssh 값을 꺼내서 저장하도록 한다.
cat 명령어는 텍스트 파일안에 있는 텍스트를 꺼내서 보여준다.
어려우면 그냥 직접 ssh 파일 열어서 복사해도 문제 없음
cat ~/.ssh/github_id_rsa.pub # GitHub SSH 공개 키
cat ~/.ssh/gitlab_id_rsa.pub # GitLab SSH 공개 키
위와 같이 명령어를 입력하면 ssh 값이 출력되는데 어디 잘 복사 해놓자
3. SSH를 각각 Github과 Gitlab에 등록
이제 발급받은 ssh를 Github과 Gitlab 계정에 등록 하도록 하자
우선 Github 이동 후 > 본인 프로필 클릭 > settings > SSH and GPG keys 이동 후
New SSH Key 버튼 클릭
Title은 원하는대로 입력하고
Key에 아까 cat을 통해 꺼내온 값을 복붙 해주고 Add SSH Key를 클릭하면 된다.
참고로 Github기 때문에 당연히 Github용 ssh를 복붙 해야한다.
다음은 Gitlab으로 가보겠다.
왼쪽 상단 프로필 모양 누르고 > Edit profile > SSH Keys 이동 후
Add new key 클릭
마찬가지로 동일하게 입력하고
Github와 동일하게 입력해주고 Add key를 누른다.
참고로 Exporation date는 알아서 설정하면 된다.
난 귀찮아서 디폴트로함
이제 기본적인 설정은 다 끝났다.
마지막으로 작업 디렉토리에서 어떤 계정을 사용할 것인지 config만 해주면 된다.
3. 작업 디렉토리에서 git config
이제 Github 혹은 Gitlab에서 작업할 프로젝트를 clone 한다.
이 후 gitbash에서 작업 디렉토리로 이동 한 후
이 디렉토리에서 push하는 계정은 어떤 계정인지 명시해주어야 한다.
clone 했을 때 최초에 한번만 하면 된다.
아 참고로 Github과 Gitlab의 이메일과 유저아이디가 완전히. 완전히 똑같은 경우는 아래는 생략하고 global config로 진행해도 된다. 근데 아마 회사에서 개발하시는 경우 회사 이메일로 사용할테니 대부분은 github과 gitlab 계정이 다를것이다.
# 작업 디렉토리로 이동
# 참고로 경로는 예시임 알아서 본인이 clone한 디렉토리로 이동하면 된다.
cd user/Github/test-repo
# 혹은
cd user/Gitlab/test-project
기존에 등록된 git config가 있을 것이므로 반드시 지워주자
# 글로벌 사용자 이름 초기화
git config --global --unset user.name
# 글로벌 이메일 초기화
git config --global --unset user.email
이제 프로젝트별 사용자 이름과 이메일을 다시 설정해준다.
# 프로젝트별 사용자 이름 설정
git config user.name "Project-specific Name"
# 프로젝트별 이메일 설정
git config user.email "project_specific_email@example.com"
위 과정을 github에서 clone한 프로젝트, gitlab에서 clone한 프로젝트에 각각 이동하여 진행해주면 된다.
자 이제 완료되었다.
이제 각각의 프로젝트에서 push를 하게 되면
알아서 gitlab 혹은 github로 push 될 것이다.
'Git & GitHub & GitLab' 카테고리의 다른 글
[Github] README 꾸미기 (스택 badge, git stats, capsule-render) (0) | 2025.01.07 |
---|