includeIf, git 계정, SSH 호스트, 커밋 이메일 | 회사 저장소에 개인 메일이 찍히면?
회사 폴더 커밋에 개인 지메일이 찍히면 전역 user.email이 덮은 겁니다. includeIf gitdir로 회사와 개인 설정을 나누고, SSH는 호스트 별칭과 IdentitiesOnly로 키를 가릅니다. user.useConfigOnly가 비면 깃이 멈춥니다. 개발자, 깃허브, Next.js, 백엔드, 데브옵스, API, 워크트리 기준으로 계정 칸만 보고 핫픽스 워크트리, 미즈 버전 글과 자리를 섞지 않습니다. 2026년 8월 깃, 깃허브 공식 문서.
회사 폴더에서 커밋을 올렸는데 작성자가 개인 지메일이면, 전역 작성자 메일 하나가 모든 저장소를 덮은 겁니다. 저장소마다 로컬로 고치면 클론할 때마다 빠집니다. 폴더 조건으로 회사 설정과 개인 설정을 나누고, 원격은 호스트 별칭과 이 키만 옵션으로 키를 갈라야 합니다. 설정만 쓰기를 켜 두면 메일이 비었을 때 깃이 로그인 이름으로 추측하지 않고 멈춥니다. 저는 12개 사이트와 클라이언트 저장소를 같은 맥에서 씁니다. 형제 폴더는 워크트리 글, 클론 뒤 노드 버전은 미즈 글입니다. 여기는 계정과 키 칸만 봅니다.
기준일은 2026년 8월 깃 설정 문서와 깃허브 커밋 메일 안내입니다.
전역 이메일 하나가 회사 커밋에 찍히는 자리
전역 작성자 메일은 조건이 없는 기본값입니다. 회사 폴더에 들어가도 그 값이 그대로 나갑니다.
깃허브는 커밋에 적힌 메일로 작성자를 붙입니다. 계정에 없는 주소면 잔디에 안 붙고, 주소 비공개를 켠 저장소는 명령줄 푸시를 거절할 수 있습니다. 공식 안내는 설정, 이메일에서 주소를 확인하고, 로컬 깃에도 같은 값을 넣으라고 적습니다. 한 대 맥에 개인 계정과 회사 계정이 같이 있으면, 그 한 줄이 두 칸을 덮습니다.
저는 파트너십 문의 저장소와 클라이언트 백엔드를 같은 홈 디렉터리에서 클론했습니다. 전역은 개인 노리플라이였습니다. 회사 폴더에서 핫픽스를 하나 올렸더니 작성자가 개인 주소였습니다. 리뷰어가 먼저 봤습니다. 시크릿이 커밋에 붙는 칸은 시크릿 체크 글입니다. 오늘은 이름과 메일, 키 칸입니다.
칸
어디에 적나
클론 뒤
잘 맞는 자리
전역만
홈의 깃 설정
모든 저장소가 같은 메일
계정이 하나일 때
저장소 로컬
그 폴더의 깃 설정
새 클론마다 다시 적음
저장소 하나, 임시
폴더 조건
전역이 회사와 개인 파일을 불러옴
폴더만 맞으면 자동
회사 작업 폴더, 개인 소스 폴더
원격 주소 조건
원격 유알엘이 회사 별칭이면
폴더가 달라도 원격이 같으면 적용
워크트리를 회사 폴더 밖에 둘 때
맥북을 처음 켤 때 홈브류와 닷파일을 까는 순서는 맥 초기 셋업 글입니다. 그 글은 도구 목록입니다. 여기는 이미 깔린 깃이 누구 이름으로 커밋하는지만 봅니다.
로컬 작성자 메일은 클론과 같이 안 옵니다 | 저장소 안에서 작성자 메일만 고치면 그 폴더만 바뀝니다. 다음 클론, 다음 워크트리에는 전역이 다시 들어갑니다.
폴더 조건으로 회사와 개인 설정 파일을 나누는 순서
전역 파일은 이름과 메일을 비우고, 회사 폴더와 개인 폴더가 각자 파일을 읽게 합니다. 조건은 깃 디렉터리 경로입니다.
깃 설정 문서의 포함 절은 폴더 조건이 참일 때만 다른 파일을 읽는다고 적습니다. 깃 경로 키워드 뒤에는 글롭 패턴이 옵니다. 패턴이 슬래시로 끝나면 그 아래 모든 저장소가 걸립니다. 앞에 물결이 있으면 홈으로 바뀝니다. 대소문자를 가리지 않으려면 대소문자 무시 깃 경로를 씁니다. 한글 경로 작업/회사 도 같은 규칙입니다. 슬래시를 빼먹으면 그 폴더 한 칸만 보고, 안쪽 저장소는 빠질 수 있습니다.
전역에는 이름을 두지 않습니다. 회사 파일과 개인 파일에만 둡니다. 겹치는 조건을 두 개 걸면 나중에 읽은 값이 이깁니다. 문서는 포함한 파일이 다시 포함을 읽는다고 적습니다. 순환만 피하면 됩니다.
[user]
name = Lee
email = lee@company.com
[core]
sshCommand = ssh -i ~/.ssh/id_ed25519_work -o IdentitiesOnly=yes
회사 폴더에서 출처 보기가 회사 설정 파일을 가리켜야 메일이 갈린다
호스트 별칭과 이 키만 옵션으로 키를 가르는 이유
메일을 갈라도 키가 하나면, 회사 원격에 개인 키가 먼저 제시됩니다. 호스트 별칭과 이 키만 옵션을 같이 둡니다.
깃허브 공식 안내는 새 에디25519 키를 만들고, 에이전트에 넣고, 계정에 공개키를 붙이라고 적습니다. 키 종류는 인증 키입니다. 서명 키는 다른 칸입니다. 초록 배지는 서명 칸입니다. 오늘은 푸시가 어느 계정으로 붙는지만 봅니다.
에이전트에 키가 여러 개면, 깃허브는 앞쪽 키를 몇 번 거절한 뒤 끊을 수 있습니다. 오픈 원격 접속 설정 문서의 이 키만 옵션은 설정 파일에 적은 파일만 쓰라고 적습니다. 회사 별칭의 호스트 이름은 깃허브 본래 주소이고, 키 파일만 회사 키입니다. 원격 주소는 회사 별칭으로 시작합니다. 본래 주소로 클론하면 개인 키가 나갑니다.
칸
무엇
빠지면
호스트 별칭
회사 별칭, 개인 본래 주소
둘 다 같은 호스트로 가서 키가 섞임
이 키만
그 칸의 키 파일만
에이전트가 개인 키를 먼저 제시
원격 주소
별칭으로 시작하는 회사 원격
클론 주소가 본래 호스트면 개인 칸
주소 바꾸기
회사 조직 주소를 별칭으로 바꿈
웹에서 복사한 주소가 개인 키로 감
액션에서 장기 키를 빼는 칸은 역할 빌리기 글입니다. 로컬 접속 키와 액션 역할은 같은 비밀이 아닙니다. 같은 브랜치에 액션이 겹치는 칸은 동시성 글입니다.
~/.ssh/config | 회사와 개인 호스트를 갈라 키를 고정
Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_ed25519
IdentitiesOnly yes
Host github.com-work
HostName github.com
User git
IdentityFile ~/.ssh/id_ed25519_work
IdentitiesOnly yes
인증 키와 서명 키는 깃허브 화면에서 칸이 다릅니다 | 접속 키를 추가할 때 종류를 인증으로 두면 푸시에 쓰입니다. 서명으로 두면 커밋 배지용입니다. 한 파일을 두 칸에 붙이지 않습니다.
이메일이 비면 깃이 로그인 이름으로 찍지 않게 막는 칸
폴더 조건이 안 맞으면 이름과 메일이 비어 있습니다. 그때 깃이 로그인 이름으로 추측하면 안 됩니다. 설정만 쓰기 값이 그 추측을 끕니다.
깃 설정 문서는 이 값이 참이면, 설정에 없는 이름과 메일을 시스템에서 만들지 않는다고 적습니다. 커밋은 실패합니다. 실패가 맞습니다. 맥 로그인 이름과 로컬 호스트가 작성자로 나가는 것보다 낫습니다. 전역에 이 한 줄만 남기고, 실제 값은 회사 파일과 개인 파일에만 둡니다.
깃허브 주소 안내도 같이 봅니다. 2017년 7월 18일 이후 계정의 숨김 메일은 숫자와 이름을 붙인 사용자 숨김 주소 형식입니다. 웹에서 주소를 숨기면 웹 조작은 그 주소로 고정됩니다. 명령줄은 로컬 설정을 따릅니다. 명령줄 푸시가 개인 메일을 드러내지 않게 막는 칸은 설정, 이메일에 있습니다. 회사 메일을 쓰려면 그 주소를 회사 계정에 추가하고 확인해야 잔디에 붙습니다.
폴더 조건의 깃 경로는 깃 디렉터리 위치를 봅니다. 핫픽스 형제를 임시 폴더에 깔면 회사 파일이 안 붙습니다.
워크트리 글에서 형제 폴더를 까는 이유는 스태시를 안 쓰기 위해서입니다. 객체는 공유합니다. 설정 포함은 그 형제의 경로를 다시 봅니다. 작업 폴더 안의 형제는 회사 패턴에 남습니다. 임시 폴더에 두면 전역만 남거나, 설정만 쓰기 때문에 커밋이 거절됩니다. 거절되면 경로를 회사 폴더 안으로 옮깁니다.
깃 2.36부터는 원격 주소로 조건을 걸 수 있습니다. 회사 별칭 원격이면 폴더가 달라도 회사 파일을 읽습니다. 패턴에 별표가 하나 있어야 문서 조건이 참입니다. 저는 형제를 회사 트리 안에 두는 쪽을 먼저 씁니다. 원격 조건은 예외 폴더가 생길 때 보강합니다.
서브모듈도 같은 함정입니다 | 서브모듈 경로가 회사 폴더 규칙 밖이면 메일이 빠집니다. 상위 저장소와 서브모듈을 같은 작업 트리에 두거나, 원격 주소 조건을 같이 겁니다.
오늘 30분에 채울 순서
새 맥이든 기존 맥이든, 아래 순서로 칸을 채우면 다음 클론부터 메일이 갈립니다. 도구 설치와 순서를 섞지 않습니다.
지금 전역 메일을 적어둡니다. 전역 조회 명령으로 확인합니다.
회사 키와 개인 키를 나눕니다. 없으면 에디25519로 파일 이름만 다르게 만듭니다.
접속 설정에 호스트 두 칸과 이 키만 옵션을 적습니다. 회사 별칭 접속 시험으로 회사 계정 문구를 확인합니다.
깃허브 두 계정에 공개키를 인증 키로 붙입니다. 회사 메일은 회사 계정 이메일 칸에 추가하고 확인합니다.
작업 폴더와 소스 폴더를 만듭니다. 이미 있는 클론은 그 아래로 옮기거나 다시 클론합니다.
전역에서 이름과 메일을 지우고 설정만 쓰기와 폴더 조건 두 줄을 넣습니다.
회사 폴더, 개인 폴더에서 출처 보기가 서로 다른 파일을 가리키는지 봅니다.
회사 저장소에서 빈 커밋으로 시험하면, 로그의 작성자가 회사 메일이어야 합니다. 시험 커밋은 되돌립니다.
노드 버전이 클론마다 다른 문제는 미즈 글입니다. 홈브류가 전역 노드를 깔아 둔 맥에서 더 흔합니다. 계정 칸을 채운 뒤에 그 글을 보면 순서가 안 섞입니다.
폴더가 갈리면 폴더 조건이 설정을 고르고, 호스트 별칭이 키를 고른다
커밋 직전에 이메일과 키를 한 줄로 확인한다
설정 파일을 믿기 전에, 지금 폴더의 값만 출력하는 별칭을 둡니다. 푸시 전에 한 줄이면 됩니다.
깃은 저장소, 전역, 시스템 순으로 덮습니다. 폴더 조건으로 읽은 파일도 그 순서에 들어갑니다. 출처 보기가 파일 경로를 보여 줍니다. 회사 폴더인데 경로가 홈 설정만 나오면 조건이 안 맞은 겁니다. 슬래시, 실제 경로, 바로 가기를 봅니다. 맥 기본 디스크는 대소문자를 가리지 않는 경우가 많아서, 패턴과 실제 철자가 달라도 한 번은 통과합니다. 외장 디스크나 대소문자 구분 볼륨이면 대소문자 무시 깃 경로가 필요합니다.
원격이 웹 주소면 키 별칭이 안 타고, 자격 증명이 따로 붙습니다. 회사 조직은 접속 별칭으로 통일하는 편이 짧습니다. 개인만 웹 주소를 남겨도 됩니다. 두 프로토콜을 같은 조직에 섞으면 주소 바꾸기와 호스트 별칭이 서로 다른 길을 갑니다.
클론과 워크트리마다 다시 빠집니다. 로컬 값은 그 폴더 깃 설정에만 있고 원격에서 안 내려옵니다. 폴더 조건을 두면 작업 폴더 아래 새 클론은 회사 메일을 자동으로 읽습니다. 임시로 저장소 하나만 고칠 때는 로컬도 됩니다. 같은 맥에서 회사가 셋 이상이면 로컬은 금방 어긋납니다.
폴더 조건이 안 먹으면 어디를 보나?
실제 깃 디렉터리 경로와 패턴의 슬래시입니다. 깃 디렉터리 조회 명령으로 나온 경로가 작업 폴더 아래인지 봅니다. 바로 가기로 클론을 다른 곳에 두었으면 패턴이 못 찾습니다. 대소문자가 다른 볼륨이면 대소문자 무시 깃 경로로 바꿉니다. 출처 보기가 회사 파일을 안 가리키면 조건이 거짓입니다.
접속 키를 하나만 쓰고 메일만 갈라도 되나?
메일은 갈라도 푸시 권한은 키입니다. 회사 조직이 개인 계정을 멤버로 안 넣었으면 개인 키로는 거절됩니다. 반대로 개인 키에 회사 조직 권한이 있으면, 메일만 회사로 바꿔도 푸시는 개인 자격으로 나갑니다. 호스트 별칭과 이 키만 옵션으로 키를 나눕니다.
이미 개인 메일로 올라간 회사 커밋은 어떻게 하나?
공유 브랜치면 그대로 두고, 다음 커밋부터 회사 메일을 씁니다. 혼자 쓰는 브랜치만 필터나 리베이스로 작성자를 고칠 수 있습니다. 이미 리뷰가 붙은 커밋을 재작성하면 해시가 바뀝니다. 잔디는 계정에 그 개인 메일이 추가되어 있으면 개인 쪽으로 붙었을 수 있습니다.
회사 깃허브 엔터프라이즈 서버면 호스트가 다른가?
다릅니다. 호스트 칸의 호스트 이름을 깃허브 본래 주소가 아니라 회사 호스트로 둡니다. 폴더 조건은 그대로 씁니다. 원격 주소 조건을 쓸 거면 별칭이 들어간 주소 패턴을 그 호스트에 맞춥니다. 브라우저 주소와 접속 호스트가 다르니, 주소 바꾸기를 회사 파일에 명시합니다.
윈도 경로도 폴더 조건이 되나?
됩니다. 문서는 글롭이라고 적습니다. 백슬래시와 슬래시가 섞이면 패턴이 빠집니다. 대소문자 무시 깃 경로로 드라이브 대소문자를 가리지 않게 두고, 슬래시로 통일하는 편이 짧습니다. 윈도용 깃에서 물결은 홈으로 바뀝니다. 확인은 같은 출처 보기입니다.