본문 바로가기
Study/Git

[Git] macOS에서 Github 계정과 GitLab 계정을 폴더(Directory)별로 사용하자

by 검프 2022. 1. 11.

git을 설치한 바로 직후라 가정하고 진행해요.

계정을 하나만 썼을 때는 global 설정으로 username과 email을 설정했는데, 관리해야 할 계정이 추가되니 매번 바꿔 줘야하는 불편함이 있었어요.
여러 블로그를 참고했는데, SSH로 설정하는 방법이 많더라구요. 근데 “원래도 안썼는데 굳이 써야할까?” 라는 의문점이 있었어요.

결론적으로 gitconfig 설정과 GitHub과 GitLab에서 제공하는 Access Tokens으로도 충분히 설정 가능하다는 것을 알고 포스팅을 작성하게 됐어요 :)


GitConfig 설정

먼저 Git 설정을 할게요! iterm이나, 터미널을 열어 실행해주세요.

vim ~/.gitconfig

위의 파일에서, global 설정을 한다고 생각하면 될듯해요 :) 명령어로도 가능하지만, vim을 사용해서 설정해봐요.

파일 수정

[user]
  email = "깃허브 이메일"
  name = "깃허브 사용자이름"
[includeIf "gitdir: "깃랩 계정으로 접근할 디렉터리""]
  path = "설정파일 위치"
[core]
  eol = lf                // OS 별로 CRLF 처리 차이로 인한 문제의 
  autocrlf = input        // 해결을 위한 설정

파일 수정 예시

[user]
  email = asdsd@naver.com
  name = livenow14
[includeIf "gitdir:/Users/livenow14/Desktop/woowa/"]
  path = .gitconfig-woowa
[core]
  eol = lf
  autocrlf = input

개인(Github) 계정을 global로 설정했어요 (실수로 회사 계정으로 push 해버리는 불상사 방지)
includeIf는 git 과 관련된 명령어를 실행할 때, gitdir의 하위 repository라면 path에 있는 설정파일을 포함하는 옵션이에요. path는 식별가능하게 작성 해주시면 돼요.
여기서 중요하게 체크 해야할게, woowa폴더내의 그냥 폴더에서는 설정이 적용이 안되고 ,git이 포함된 곳에만 적용이 된다는 점이에요
ex) /woowa/work/repo1, /woowa/work/repo2가 있을 때, /woowa, /woowa/work 폴더에는 적용이 안되고, repo1, repo2 폴더에만 적용이 된다.

저는 회사에서 사용할 레포지토리들을 바탕화면(Desktop)의 woowa 폴더에서 관리하고 싶어서 gitdir 위와 같이 설정했어요.

깃의 설정파일 우선순위가 Local(직접 설정한 것) > Global인 것을 참고하면 좋을 것 같아요.

이제 회사(GitLab) 계정 또한 설정해주죠.

.gitconfig-woowa 파일 수정

vim ~/.gitconfig-woowa
[user]
  email = "깃랩 이메일"
  name = "깃랩 사용자이름"

.gitconfig-woowa 파일 수정 예시

[user]
  email = livenow@woowa.com
  name = 검프

깃허브와 마찬가지로 이메일과 GitLab의 사용자이름을 설정해주면 돼요!


Access Token 발급

이제 Access Token을 발급 받아보죠!

GitHub Access Token 발급

먼저 메인 화면에서 맨 오른쪽 위 사진을 클릭하고 Settings에 들어가요

https://user-images.githubusercontent.com/48986787/148878053-9c8b17e8-18aa-41f7-860b-e33eff334b06.png

그다음 Developer settings를 클릭해요

https://user-images.githubusercontent.com/48986787/148878445-280e3edd-b516-414c-b047-b7246f4647eb.png

그 뒤, Personal access tokens을 클릭해요

https://user-images.githubusercontent.com/48986787/148878800-43d9a0e5-2018-45c8-9efa-586678291f25.png

Generate new token으로 token 생성페이지로 가요

https://user-images.githubusercontent.com/48986787/148879039-ee979b82-10d1-4472-8c2d-2ab4a2e0a8f0.png

token생성 페이지에서, 필요한 권한을 주고 이름을 설정해요 (저는 업무 노트북에서 사용할 것이기 때문에 repository삭제 권한 빼고 다 설정했어요.)

https://user-images.githubusercontent.com/48986787/148879867-3fdf23f9-d5fd-47bc-ab71-042043429e21.png

Generate token을 클릭하면 token이 생성돼요. 여기서 나오는 token값은 페이지를 벗어나면 발급할 수 없으니, 따로 어딘가 저장해놓아요. 잊어버리면 무조건 재발급 해야해요.

% 토큰값 저장 필수 %

https://user-images.githubusercontent.com/48986787/148949259-7e16f273-a605-4b75-a537-faa870c5c3b2.png

이후 예시에는 발급받은 깃허브 token이라 말할게요

GitLab Access Token 발급

https://user-images.githubusercontent.com/48986787/149042605-efed0dbb-23f0-48ff-ac6a-47e350af42c0.png

Github랑 마찬가지로 Edit profile를 클릭해요

https://user-images.githubusercontent.com/48986787/148943151-f8735da9-5782-4aaf-b894-cd67b6bc67e6.png

Github랑 마찬가지로 토큰이름이랑 Expiration date, 필요한 권한을 설정해요.

Expiration date는 따로 설정하지 않으면 영구적으로 사용할 수 있게 설정해요.

https://user-images.githubusercontent.com/48986787/148947620-be3eab09-64f7-4cdf-98e2-373d3ea83d04.png

여기서 나오는 token값은 Github와 마찬가지로 페이지를 벗어나면 발급할 수 없으니, 따로 어딘가 저장해놓아요.

이후 예시에는 발급받은 깃랩 token이라 말할게요

% 토큰값 저장 필수 %

위의 토큰값들은 사진찍고 바로 삭제했어요 ㅎㅎ

자 이제 발급받은 Access Token들을 mac에 저장해줘야해요.
저장된 Access Token들은 비밀번호의 역할을 할거에요.


Mac에 Credential 등록

credential-osxkeychain 확인

credential-osxkeychain이 존재하는지 확인해요.

git credential-osxkeychain

있으면 아래와 같은 결과가 떠요.

git credential-osxkeychain
Usage: git credential-osxkeychain <get|store|erase>

없으면 아래와 같은 결과가 떠요.

git credential-osxkeychain
xcode-select: note: no developer tools were found at '/Applications/Xcode.app',
requesting install. Choose an option in the dialog to download the command line developer tools.

없을 경우, git을 다시 설치해주세요.

keychain 등록

이제, global 설정으로 keychain을 설정할 것을 예약해둬요.

git config --global credential.helper osxkeychain

자 이제 설정이 끝났어요!

helper가 잘 등록됐나 보려면

vim ~/.gitconfig

를 실행해보면 돼요 ㅎㅎ

[user]
  email = asdsd@naver.com
  name = livenow14
[includeIf "gitdir:/Users/livenow14/Desktop/woowa/"]
  path = .gitconfig-woowa
[core]
  eol = lf
  autocrlf = input
[credential]            //추가됨!
  helper = osxkeychain  //추가됨!

앞서 직접 설정했던 것 뒤에 추가로 설정된것이 보이시죠?! 이렇게까지 확인해봤다면 설정 완료!

이제 git 작업시 딱 1번 닉네임과 토큰값을 입력 해주면, 이후 mac의 키체인에 자동적으로 저장될거에요.


직접해보기

woowa 폴더내의 레포지토리

앞서 woowa폴더에 Gitlab을 사용하도록 설정했어요.

작업을 할 woowa폴더 내의 레포지토리에 들어가서

git config user.name

git config user.email

를 실행해보면 설정한 값이 잘 들어가는것을 알 수 있어요

https://user-images.githubusercontent.com/48986787/148962661-57949432-00e1-4c11-be1c-60dddc0df72d.png

실제로 커밋이 어떻게 찍히는지 보고싶다면 아래와 같이 간단하게 커밋을 날려봐도 돼요!

touch test.txt
git add .
git commit -m "test"
git push origin main

첫 push를 할 때 username과 password를 입력하라 할거에요.

여기는 회사용으로 사용할 거니, 깃랩의 name과 토큰값(발급받은 깃랩 token)을 입력하면 돼요 (아까 저장한 토큰값 안까먹으셨죠?!)

woowa 폴더에 포함되지 않는 레포지토리

woowa폴더 안이 아닌 레포지토리는 일반적인 전역설정이 들어가겠죠?

예시에선 study 폴더내의 레포에 접근했어요.

https://user-images.githubusercontent.com/48986787/148963638-203664b7-faaf-4819-b24f-2292f573a5ed.png

처음에 설정한 값이 잘들어있네요!

첫커밋을 찍을때 깃허브의 name과 토큰값(발급받은 깃허브 token)을 입력해야겠죠?! ㅎㅎㅎ


끝!

댓글