.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 파일을 기본으로 가져가면서 덮어씌워진다.)