All Posts

Git key 생성 및 계정 설정 분리하기

나만의 깃 세팅 구성하기


블로그를 작성할 시간을 내는게 정말 쉽지 않다. 그래도 자주 써보자는 생각이 다시 들게 해준 상황 덕분에 정리한다

본론으로 바로 들어간다.

이슈는 다음과 같다.

특정 폴더에서만 특정한 git user와 ssh키를 사용하고 싶다.

회사 업무와 개인 프로젝트를 하나의 맥북으로 하고 있기 때문에 필요하다… 회사에서 맥북을 안사줘서 개인 맥북을 사용해야하는ㅠㅠ 눙물이 난다.

TODO LIST

  1. 계정별 ssh 키 생성
  2. 특정 폴더를 위한 .gitconfig 파일 생성
  3. 특정 폴더에서만 2에서 설정한 config 파일을 사용하도록 설정

1. 계정별 ssh 키 생성

아무 설정도 애초에 없었다고 가정하고 간다. 만약 특정 설정이 있었다면 지우고 하면 됨

  $ cd ~/.ssh
  $ ssh-keygen -t rsa -C "username@github.com" // 계정 이름
  $ Enter file in ....
  /* SSH 키 이름 설정 편의상 username@github.com으로 생성 추천*/

  $ ls // 파일 생성 여부 확인

위의 방식을 반복해서 계정마다 키를 생성한다.

생성한 키는 에이젠트에 추가

  $ ssh-add ~/.ssh/username@github.com

SSH 키 관리는 ~/.ssh/config 파일에서

자세한 내용은 Outsider님의 블로그 에 잘 정리되어 있다.

ssh를 새로 만들었으니깐, 전역으로 사용할 user 정보를 가질 계정 설정도 추가로 해주면 됨

2. 특정 폴더를 위한 .gitconfig 파일 생성

이것도 Outsider님의 블로그에 잘 정리되어 있지만…

개념만 말하면, 특정 폴더(아마도 회사의 workplace)에서만 사용될 .gitconfig파일을 만드는 것이다.

[user]
  email = username@company.com
  name = techoi

3. 특정 폴더에서만 특정한 .gitconfig 파일 사용하도록 설정

위에서 만든 .gitconfig-work 파일도 ~/위치에 있고 여기에는 .gitconfig 파일도 있다.

.gitconfig 파일에 다

[includeIf "gitdir:~/company-workspace]
  path = .gitconfig-work

만 넣어주면 된다.

이제 잘됬는지 확인해보자!

company-workspace 외 폴더에 있는 프로젝트에 가서 git config --list를 쳐보면 내 계정의 정보면 보인다.

company-workspace에 있는 특정 프로젝트에 가서 git config --list를 쳐보면 회사에서 쓸 계정이 보인다.


추가사항

ssh를 만들었다고해서 다 끝나는건 아니다. ssh 생성했으면 ~/.ssh 폴더 안에 private keypublic key가 생성된다.

이를 github의 경우, [Setting] > [SSH and GPG keys] > [New SSH key] 에서 생성한 public key를 복사해서 넣어주면 된다.

이것도 귀찮으면

애초에 ssh를 따로 만들지도 말고, 그냥 git 로컬 repo에 입력한 usernamepassword를 저장할 수도 있다.

  $ git config credential.helper store

에필로그

예전부터 Vim을 잘 쓰고 싶다는 생각만 하다가 일단 시작해보자하는 마음에 기존에 사용하고 있던 IDE에 Vim extension을 추가해버렸다. 그리고 한 2주 버벅이면서 되돌리고 싶다 계속 생각했지만, 오기로 버티다 보니깐 꽤나 손에 익게 되었다. 그후로는 server 작업이든, 기타 mac 설정 작업을 할때 vi을 쓸때 속이 시원해지는 마법이 내게도 생겼다. 아쉬운점은 IDE마다 Vim extension의 기능 차이가 있다는… 혹시나 Vim에 익숙해지고 싶다면 extension 설치를 적극 추천한다. 물론 한동안 manual을 계속 보게 되겠지만…