[Git] 레포지토리 별 user 이름 변경하기

2023. 3. 19. 01:25

악악악 개발은 못하고 이거 삽질로 한시간을 날린 것을 잊어먹지 않게... 작성해둔다.

 

토이프로젝트에 사용하는 개인 git 계정과 회사용 git 계정을 레포지토리 별로 설정해주고 싶었다.

 

!!!! Mac OS 기준 !!!!

 

이 .gitconfig라는 파일을 수정하여서 변경해야한다. 기본적인 원리는 어렵지 않다. gitconfig 파일이 전역적인 설정관리를 하는데, 오늘 이용할 includeIf 것은 특정 조건에 맞는 레포지토리는 별도의 설정 파일 (이하 my-config 파일)로 대체해주는 좋은 기능이다! 우리가 해야할 일은 세가지이다.

 

1. 나만의 설정파일 만들기 (.my-config)
2. 그 설정파일을 잘 세팅해주기 (.gitconfig)
3. 잘되었나 확인해보자

 

1. 나만의 설정파일 만들기

어느위치에 해도 무관하나 왠만하면 .gitconfig와 같은곳에 해주자. 관리가 편하게.

나처럼 같은 위치에 설정하려면, 터미널 명령은 다음과 같다.

nano ~/.my-config

 

 

 

작성을 완료하면, control + x 후 Y를 눌러 저장하자.

 

2. 그 설정파일 잘 세팅하기

git config --global --edit

 

를 터미널에 적으면 위치를 몰라도 수정이 가능하지만 터미널에서 수정이 능숙한 사람이길 바란다. /Users/user 위치에 일반적으로 있으니 숨김파일을 켜서 확인해보면 요로코롬 숨어져있다. 이걸 더블클릭하면 문서편집기에서도 수정이 가능하다.

 

 

 

 

.gitconfig 파일을 살펴보면 아래와 같다

 

[includeIf "gitdir:/path/to/repository/A/"] // 맨 마지막 / 꼭!!! 붙여주기 이걸로 시간 낭비함ㅋㅋ
    path = .my-config

 

includeIf는 말그대로 조건이다. 해당조건에 맞는 레포지토리는 아래의 설정으로 바꾼다는 의미이다. 그래서 우리는 gitdir인, 레포지토리 경로를 기준으로 해준다는 의미다. 특정 레포 딱 1개만 하고 싶으면 예시에 쓴것처럼 구구절절 적어도 괜찮지만, 내가 모자이크 해둔 사진처럼 "gitdir:~/MyName/"으로 하면 MyName 하위의 모든 폴더를 의미한다. 예를들어, Personal 폴더와 Company 폴더로 해둔 사람이면 includeIf 항목을 두개로 만들어줘서 각각 추가해주면 된다.

 

[includeIf "gitdir:~/Company"]
    path = .com-config
[includeIf "gitdir:~/Personal"]
    path = .my-config

 

이런식으로..!

path에는 1에서 만든 파일의 경로를 넣어주면된다. 자신만의 위치에 파일을 만든사람이면 그 경로 넣으면되고, 나같이 .config와 같은경로면 저렇게 파일명만 넣어도된다.

 

3. 잘되었나 확인해보자

터미널을 열고, 확인하고 싶은 레파지토리의 경로로 바꾼다. 그 뒤 아래의 명령어를 쳐보면 이름과 이메일을 확인할 수 있다. (이걸몰라서 계속 커밋하고 삭제하고 노가다 했네 --)

 

git config --show-origin --get user.email

 

(base) user@***** $$$$$$$$$ % git config --show-origin --get user.email
file:/Users/user/.gitconfig-personal	&&&&&&@gmail.com
^어떤 config를 사용했는지 보여줌

 

원하는 메일이 뜬다면 완료~!!

만약 아무 다른 폴더로 하면 전역의 이름 이메일이 뜰것이다. (왜냐면 조건을 안달아준 폴더일테니) 후 오늘도 뻘짓 1시간 블로그 작성 1시간 도합 2시간을 날리고 작업한다 ^.T...