
회사 프로젝트에서 개인 이메일로 커밋했거나, 개인 저장소에 회사 이름이 남는 일을 막으려면 로그인보다 Git 작성자 설정을 먼저 확인해야 합니다. 이 글은 저장소별 user.name·user.email을 분리하고 새 커밋 전 점검하는 방법입니다. 2026-11-01 공식 문서 확인 기준이며 실제 저장소 실행 테스트와 사용자 설치 버전은 미확인입니다.
3줄 결론
① 저장소 안에서 --local로 이름과 이메일을 지정합니다.
② --show-origin --get으로 적용값과 출처를 확인합니다.
③ 작성자 정보는 인증 계정과 별개이며 과거 커밋은 자동 수정되지 않습니다.
시작 전 체크리스트
- 터미널이 설정할 Git 저장소 폴더 안에 있는지 확인합니다.
- 회사·개인 중 이번 저장소에 사용할 이름과 이메일을 정합니다.
- GitHub 연결이 목적이면 해당 계정에 등록한 이메일 또는 본인 계정의 noreply 주소를 준비합니다.
- 예제의 이름과 이메일은 실제 값으로 바꿉니다. 비밀번호·PAT·SSH 개인키는 넣지 않습니다.
1. 현재 값과 설정 파일부터 조회
git config --show-origin --get user.name
git config --show-origin --get user.email--get은 지정한 키의 값을 조회하고 --show-origin은 그 값이 온 파일 등의 출처를 덧붙입니다. 옵션 없이 읽을 때는 로컬 설정만 보는 것이 아닙니다. system·global·local 등을 읽으므로 값 옆의 출처까지 확인하세요. 값이 없으면 출력 없이 실패 상태가 반환될 수 있으며, 이를 저장소 손상으로 단정하지 않습니다.
2. 이 저장소에만 이름과 이메일 지정
git config --local user.name "Work Name"
git config --local user.email "work@example.com"
git config --show-origin --get user.name
git config --show-origin --get user.email--local 쓰기는 해당 저장소의 .git/config에 반영됩니다. 저장소 안에서 범위를 생략하고 쓰는 것도 기본은 local이지만, 실수를 줄이도록 명시했습니다. 다른 저장소나 GitHub 웹 설정은 바꾸지 않습니다. 로컬 이메일 설정은 그 저장소에서 전역 설정을 덮어씁니다. 개인 저장소에서도 같은 절차로 개인 값을 지정하세요.
3. 전역 기본값과 구분
git config --global user.name "Personal Name"
git config --global user.email "personal@example.com"이 명령은 비교용입니다. --global은 사용자 전역 설정에 기록하므로 여러 저장소의 기본값에 영향을 줍니다. 회사 저장소 하나만 고치려면 실행할 필요가 없습니다. 이미 로컬로 지정한 값이 전역값으로 일괄 교체되는 것도 아닙니다. --global을 붙여 조회하면 전역 파일만 보므로 현재 저장소의 실제 적용값 확인을 대신할 수 없습니다.
4. 로컬 예외를 없앨 때만 --unset
git config --local --get user.email
git config --local --unset user.email
git config --show-origin --get user.email삭제는 선택 사항입니다. 이 저장소의 이메일 예외가 불필요한 경우에만 실행하세요. --local --unset은 로컬 파일의 해당 키를 지우며 전역 이메일이나 과거 커밋을 지우지 않습니다. 삭제 뒤에는 전역 등 다른 범위의 값이 다시 적용될 수 있으므로 마지막 조회가 중요합니다. 이름도 필요할 때만 같은 방식으로 user.name을 대상으로 합니다. 잘못된 값을 올바른 로컬값으로 교체하는 목적이라면 2단계만으로 충분합니다.
주의: 키가 없거나 여러 값이 겹치면 unset이 실패할 수 있습니다. 곧바로 --unset-all이나 설정 파일 전체 삭제로 넓히지 말고, 출처와 해당 범위를 확인하세요. --global --unset은 다른 저장소의 기본값까지 바꿀 수 있어 이 절차에서 사용하지 않습니다.
작성자 설정과 인증은 다릅니다
user.name과 user.email은 커밋 객체의 author·committer 정보에 쓰입니다. GitHub 로그인 사용자 이름이나 push 권한을 정하는 비밀 자격 증명이 아닙니다. 이메일은 GitHub가 명령줄 커밋을 계정과 연결할 때 사용하지만, 이를 바꿔도 SSH 키나 HTTPS 자격 증명이 교체되지는 않습니다. push가 다른 계정으로 인증되는 문제를 작성자 설정으로 해결하려 하지 마세요.
미해결 시 추가 점검
- 출처가 예상과 다르면 다른 저장소에서 조회했는지, 조건부 include 등 별도 설정이 있는지 확인합니다.
- 작성자가 계속 다르면 author.name·author.email·committer 설정과 GIT_AUTHOR_NAME·GIT_AUTHOR_EMAIL 같은 환경변수, 도구가 별도로 지정한 작성자를 점검합니다. user 설정만으로 모든 덮어쓰기를 막지는 못합니다.
- user.useConfigOnly는 이름·이메일의 자동 추정을 막는 선택 설정입니다. 이미 있는 전역 이메일을 무시해 저장소마다 입력을 강제하는 만능 장치는 아닙니다.
FAQ 3가지
1. user.name은 GitHub 아이디여야 하나요?
아닙니다. 커밋에 표시할 이름입니다. 이름을 계정 아이디로 맞추는 것만으로 인증 계정이 바뀌지는 않습니다.
2. 설정을 고치면 기존 커밋도 바뀌나요?
아닙니다. 새 이름과 이메일은 이후 커밋에 적용되며 기존 커밋은 이전 정보를 유지합니다. 이 글은 예방용이며 기존 히스토리 재작성·강제 push를 해결책으로 권하지 않습니다.
3. 이메일 공개를 피하려면 어떻게 하나요?
GitHub가 제공하는 본인 noreply 주소를 사용할 수 있습니다. 주소 형식을 추측해 만들지 말고 계정에서 확인한 값을 쓰세요. 회사의 이메일 사용 정책도 먼저 확인합니다.
함께 읽기
- 인증 계정과 연결을 따로 점검하려면 GitHub SSH 키 등록·연결 테스트를 참고하세요.
- 이미 기록된 줄의 마지막 변경 커밋을 조사할 때는 Git blame으로 특정 줄의 변경 이력 확인을 읽어 보세요.
공식 출처
- Git git-config: 설정 범위·출처·삭제·작성자 변수.
- GitHub: Git 사용자 이름 설정: 단일 저장소와 이후 커밋 적용.
- GitHub: 커밋 이메일 설정: 계정 연결·noreply·기존 커밋 유지.
'개발·프로그래밍' 카테고리의 다른 글
| Git blame 특정 줄 마지막 변경 커밋 확인: -L로 범위 좁히고 git show로 검토하기 (0) | 2026.10.26 |
|---|---|
| Git 특정 파일 변경 이력 확인: git log --follow로 이름 변경 전 기록 찾기 (0) | 2026.10.23 |
| Git diff와 git diff --staged 차이: add 전후와 HEAD 비교 정리 (0) | 2026.10.17 |
| VS Code 제한 모드 해제·폴더 신뢰 관리: Workspace Trust를 안전하게 설정하는 방법 (0) | 2026.10.16 |
| VS Code 설정 동기화 켜기·끄기: 클라우드 데이터 삭제와 로그아웃 구분 (0) | 2026.10.15 |
댓글