피드로 돌아가기
Dev.toDevOps
원문 읽기
Git 설정 실수로 2주간의 커밋 이메일이 꼬였을 때의 완벽한 해결책
I Used the Wrong Git Email for 2 Weeks — And No One Noticed
AI 요약
Context
단일 머신에서 개인 프로젝트와 클라이언트 업무를 병행하며 발생한 정체성 혼란 문제. ~/.gitconfig의 전역 설정이 모든 저장소에 일괄 적용되어 엉뚱한 이메일로 커밋이 기록되는 구조. 저장소별로 로컬 설정을 수동 적용하는 방식은 신규 프로젝트 생성 시 누락 위험이 큰 한계 존재.
Technical Solution
- Git의
includeIf기능을 활용하여 디렉토리 경로 기반의 조건부 설정 로드 구조 설계 - 업무 성격에 따라
~/clients/,~/work/,~/personal/로 폴더 구조를 엄격히 분리하여 트리거 설정 - 각 정체성별로 독립된 설정 파일(
~/.gitconfig-clients등)을 생성하여 사용자 이름과 이메일을 정의 - 전역
~/.gitconfig파일에includeIf "gitdir:~/path/"구문을 추가하여 특정 폴더 진입 시 해당 설정이 전역 값을 덮어쓰도록 구성 - 커밋 메타데이터와 별개인 GitHub 인증 문제를 해결하기 위해 SSH Key를 계정별로 생성하여 분리
~/.ssh/config에 호스트 별칭(Host Alias)을 설정하여 푸시 시 사용할 SSH Key를 명시적으로 지정하는 인증 체계 구축
Key Takeaway
인간의 기억력에 의존하는 수동 설정 대신 디렉토리 구조라는 물리적 제약을 규칙으로 변환하여 자동화하는 선언적 설정 관리의 중요성.
실천 포인트
다중 계정 사용 시 `includeIf`로 폴더별 설정을 자동화하고, SSH Config 별칭을 통해 인증 계정을 분리할 것