폴더별로 git 설정을 분리해보자

RunFridge·2024년 5월 23일

git

목록 보기
2/2

.gitconfig란?

Git-cli를 사용하다보면 아래와 같은 커맨드를 본적이 있을것이다.

git config --global user.name "RunFridge"
git config --global use.email "runfridge@example.com"

위 커맨드는 Git 레포지토리에서 커밋에 이름 그리고 이메일을 지정해주는 커맨드이다.
그중 --global 플래그를 붙이게되면 ~/.gitconfig 라는 파일에 설정이 다음과 같이 형식으로 저장되는것을 볼 수 있다.

[user]
	name = "RunFridge"
    email = "runfridge@example.com"

업무 분리

전역적으로 하나의 .gitconfig를 갖는것은 편리한점도 있지만, 위 이미지와 같이 개인/회사/프리랜서 등 업무가 분리된다고 생각해보자.

경우에 따라 프로젝트별 커밋 프로필 또는 커밋 서명 등의 설정이 바뀔 수 있다.

하지만, 이를 매번 새로운 프로젝트가 추가될때마다 설정해주는것은 상당히 불편한 일이다.

이때 includeIf 설정을 사용해보자!

includeIf

.gitconfig 파일에 다음과 같이 설정하게되면 경로별로 특정한 .gitconfig 파일을 참조하여 설정하도록 지정할 수 있다.

[includeIf "gitdir:/home/runfridge/personal/"]
	path = /home/runfridge/personal/.gitconfig-personal
[includeIf "gitdir:/home/runfridge/company/"]
	path = /home/runfridge/company/.gitconfig-company
[includeIf "gitdir:/home/runfridge/freelance/"]
	path = /home/runfridge/freelance/.gitconfig-freelance

⚠️ 주의:
"gitdir:/home/runfridge/personal/" 부분에서 마지막 /를 빼먹지 말자

이렇게 설정하게되면 gitdir 하위 디렉토리에 해당하는 모든 git 리포지토리들은 path에 지정된 .gitconfig를 따라가게된다.

(물론, 최상단에 설정된 ~/.gitconfig 파일을 기본으로 가져가면서 덮어씌워진다.)

0개의 댓글