저는 Github 계정이 회사용/개인용이 각각 있습니다. 회사 맥북으로 개인 프로젝트를 진행하려 했고, git 설정은 회사용 Github 계정으로 셋팅되어 있었습니다. 개인 프로젝트에서는 개인용 계정으로 커밋 내역을 기록하고 싶었고 방법이 있어서 정리해보았습니다.
SSH key 생성
터미널을 열어 ~/.ssh
에 접속 후 아래 명령어를 입력합니다.
ssh 키 쌍을 생성하는 명령어입니다. 회사용/개인용 각각 만들어줍시다.
아래와 같이 나올텐데 암호는 입력하지 않아도 됩니다. 엔터를 두 번 누릅니다.
키 쌍이 제대로 생성되었는지 확인합니다. 회사용/개인용으로 public/private key 총 4개가 생성되었다면 성공입니다.
생성한 key를 ssh-agent에 등록
백그라운드에서 ssh-agent를 시작합니다.
ssh 접속정보를 config로 등록하여 간판하게 ssh 접속할 수 있도록 ~/.ssh/config
를 작성합니다.
ssh-agent는 키를 자동으로 로드하고 키 집합에 암호를 저장할 수 있습니다.
아래 내용을 입력해줍니다. 달라지는 내용은 두 개입니다.
Host
- ssh 명령에 사용할 이름입니다.IdentityFile
- ssh key 위치입니다.
ssh-agent에 ssh private key를 추가해줍니다.
GitHub의 계정에 SSH 퍼블릭 키를 추가
회사용/개인용 Github 계정 둘 다 아래 절차를 진행해야 합니다.
ssh public key를 복사합니다.
github.com > 오른쪽 상단에 프로필 클릭 > Settings 클릭합니다.
좌측 메뉴에 SSH and GPG Keys 클릭 > New SSH Key 클릭합니다.
입력할 수 있는 화면이 나타납니다.
Title
- ssh key에 대한 간단한 설명을 적습니다.Key
- 복사했던 내용을 붙여넣기합니다.
Add SSH Key
버튼을 클릭하여 public key를 등록합니다.
ssh 설정은 완료되었습니다. ssh 연결 테스트를 해보고 싶다면 아래 명령어를 입력합니다.
경고가 표시될 수 있는데 key fingerprint가 public key fingerprint와 일치하는지 확인하고 yes를 입력하면 됩니다. 이후 연결되었다면 터미널에 결과가 이렇게 나올겁니다.
폴더에 따른 .gitconfig 설정
전역 .gitconfig
설정으로 프로젝트가 속한 폴더에 따라 git 설정을 변경할 수 있습니다.
앞서 말씀드렸다시피 저는 개인용 계정으로 커밋 Author를 남기고 싶었기에 user 정보를 설정해주었습니다.
.gitconfig
내용을 다음과 같이 수정해 줍니다.
이후 ~/personal_workspace/personal_workspace.inc
위치에 user 정보를 작성합니다.
개인 프로젝트를 ~/personal_workspace/
하위에서 관리하면 이 걱정은 이제 문제 없습니다.
동작 확인
모든 설정이 끝났습니다. 이제 동작이 제대로 되는지만 확인하면 됩니다.
git clone
, git fetch
, git pull
처럼 일부 git 명령어를 사용할 땐 원격 저장소가 필요합니다.
원격 저장소는 url으로 지정할 수 있는데 문법이 있습니다.
url은 프로토콜은 포함해야 합니다.
프로토콜 중에 저희가 설정했던 걸 이용할 수 있는 건 git
혹은 ssh
입니다.
여기서는 git
에 대해서만 다루겠습니다.
자세한 건 git 공식문서에 나와 있습니다.
저희가 url에 적용할 문법은 아래와 같습니다.
git://<host>[:<port>]/<path-to-git-repo>
<host>
-~/.ssh/config
에서 설정했던Host
를 넣어주면 됩니다.[:<port>]
- 생략해도 됩니다.<path-to-git-repo>
- 저장소 위치를 넣어줍니다.
예시로는 이렇게 될 수 있겠네요. 제 블로그 원격 저장소 url을 사용한 예시입니다.
git://github.com-personal/junseokku/junseokku-dev.git
만약 기존 프로젝트에 원격 저장소 url을 변경한다면 이렇게 하면 됩니다.
새로 프로젝트를 clone 받는 것도 마찬가지입니다.
따라서 아래 사항들만 유의하며 사용하면 됩니다.
- 원격 저장소에 접근할 땐, ssh 방식을 이용한다.
- url에선
~/.ssh/config
에 설정된 Host를 이용한다. - 프로젝트에서 접근하는 계정에 따라 원격 저장소를 제대로 설정하자.