728x90

회사에서 공부하다가 개인 레포에 푸쉬를 할 일이 생겼을 때 별도의 설정이 없을경우 회사 계정으로 푸쉬가 되서 잔디가 안생기는 일이 있었다. 잔디도 나름 작고 소중한 것들이기에 하나도 잃을 수 없었고 관련해서 정보를 찾고 적용 후 포스팅을 작성한다.


해당 설명은 Window OS를 대상으로 하고있습니다.

  1. ".gitconfig" 파일을 찾는다. (git 설치 시 따로 지정안해주면 C:/Users/{사용자명} 디렉토리에 생성됨)
  2. 회사 계정과 개인계정 정보를 담은 설정 파일을 원하는 디렉토리에 생성해준다.
    1. 전 그냥 동일한 위치에 .gitconfig-personal, .gitconfig-professional 을 생성해주었습니다.
    2. 각 파일에 user.name, user.email 정보를 작성 후 저장한다.
    3. .gitconfig 파일을 수정한다.

.gitconfig-personal, .gitconfig-professional

[user]
	email = 깃 이메일
	name = 깃 이름

.gitconfig

[includeIf "gitdir:~개인 레포가 담긴 디렉토리"]
	path = .gitconfig-personal
[includeIf "gitdir:~회사 프로젝트가 담긴 디렉토리"]
	path = .gitconfig-professional

gitdir을 작성할 때 디렉토리만 작성하고 끝내는게 아니라 마지막에 /를 붙여줘서 해당 디렉토리 하위의 모든 디렉토리에 적용하겠다고 표시해주어야한다.

 

위의 간단한 과정으로 디렉토리별 계정 설정이 완료된다.


이렇게 했을 때 STS 에서 includeIf 설정을 못 알아먹고 커밋 시 그냥 사용자명 <데스크탑 네임> 으로 설정되었다.

인텔리제이는 잘 알던데;;

그래서 조금 방식을 변경해서 전역 변수에 회사 계정을 등록해주고 개인 디렉토리만 개인 계정을 설정해주기로 했다.

변경되는 부분은 .gitconfig 파일 하나 뿐이다.

[user]
	email = 화사 이메일
	name = 회사 깃 이름
[includeIf "gitdir:~개인 디렉토리/"]
	path = .gitconfig-personal

여기서도 주의할게 [user] 전역변수 부분이 includeIf 보다 밑에 있을 경우 개인 디렉토리에서 설정이 덮어씌워진다는 점이다. 

 위와 같이 수정했을 때 STS에서도 잘 알아들어서 커밋 시 회사 계정으로 커밋되어 기록이 남고 개인 프로젝트에 커밋할 때도 개인 계정으로 잘 담겨서 모든 잔디를 잃지 않을 수 있었다.

+ Recent posts