[GitHub] push 실패: private email 설정 때문에 발생하는 오류

2026. 3. 6. 18:41·Development

GitHub Desktop 또는 `Git`으로 `push`를 할 때 아래와 같은 오류가 발생할 수 있다.

Failed to push

Cannot push these commits as they contain an email address marked as private on GitHub.
To push anyway, visit https://github.com/settings/emails, uncheck "Keep my email address private", then switch back to GitHub Desktop to push your commits. You can then enable the setting again.

 

 

 

왜 발생하는 문제인가

GitHub에는 이메일 주소 보호 기능이 있다.

설정 경로

https://github.com/settings/emails

여기에서 다음 옵션이 활성화되어 있을 수 있다.

Keep my email addresses private

 

 

이 설정이 켜져 있으면 GitHub는 다음을 허용하지 않는다.

  • 실제 이메일이 포함된 커밋
  • GitHub 계정 이메일과 다른 커밋 이메일

즉, 현재 커밋에는 다음과 같은 정보가 들어있다.

Author: username <real_email@example.com>

하지만 GitHub 설정으로 인해 다음 형식의 이메일을 사용해야 된다.

username@users.noreply.github.com

그래서 `push`가 차단된다.

 

 

 

해결 방법

1. GitHub noreply 이메일로 git 설정 변경

먼저 GitHub 이메일 설정 페이지에서 noreply 이메일을 확인한다.

https://github.com/settings/emails

 

예시

12345678+username@users.noreply.github.com

이후 `git` 설정을 변경한다.

git config --global user.email "12345678+username@users.noreply.github.com"

설정 확인

git config user.email

그 다음 다시 `push` 하면 정상적으로 동작한다.

 

 

2. GitHub 이메일 프라이버시 설정 끄기

GitHub 설정에서 다음 옵션을 끈다.

Keep my email addresses private

`push`를 완료한 뒤 다시 켤 수도 있다.

하지만 이 방법은 실제 이메일이 커밋 기록에 노출될 수 있기 때문에 권장되지 않는다.

 

 

3. 이미 만든 커밋 이메일 수정하기

이미 커밋을 만든 상태라면 author 정보를 다시 설정해야 할 수 있다.

최근 커밋 수정

git commit --amend --reset-author

여러 커밋이라면 interactive rebase를 사용할 수 있다.

git rebase -i HEAD~3

 

 

 

 

왜 GitHub는 이런 정책을 사용하는가

`Git`의 커밋 정보에는 이메일이 포함된다.

예를 들어 다음 명령으로 확인할 수 있다.

git log

여기에는 author 이메일이 그대로 기록된다.

따라서 GitHub는 사용자의 이메일 보호를 위해

username@users.noreply.github.com

형식의 noreply 이메일 사용을 권장하고 있다.

 

 

 

정리

이 오류는 다음 상황에서 발생한다.

  • GitHub에서 이메일 프라이버시 기능 활성화
  • `git` 설정에는 실제 이메일 사용
  • 커밋 이메일이 GitHub 정책과 불일치

가장 좋은 해결 방법은 다음 설정을 사용하는 것이다.

git config --global user.email "github_noreply_email"

 

'Development' 카테고리의 다른 글

[Github] 잔디가 안심어 질 때 (Github Contribution)  (1) 2026.03.12
[VSC] 머메이드 미리보기 (mermaid preview extension)  (0) 2026.03.09
오픈소스 라이선스 비교: MIT, Apache, LGPL, GPL 차이점과 주의사항  (0) 2026.03.03
[Codex] SuperPowers 설치하기  (0) 2026.02.26
[Antigravity] Codex extension 설치하기  (0) 2026.02.23
'Development' 카테고리의 다른 글
  • [Github] 잔디가 안심어 질 때 (Github Contribution)
  • [VSC] 머메이드 미리보기 (mermaid preview extension)
  • 오픈소스 라이선스 비교: MIT, Apache, LGPL, GPL 차이점과 주의사항
  • [Codex] SuperPowers 설치하기
곽진돔
곽진돔
Developer
  • 곽진돔
    echo "곽박한 세상";
    곽진돔
  • 전체
    오늘
    어제
    • 분류 전체보기 (234)
      • Development (97)
        • Linux (13)
        • k8s (3)
        • Docker (5)
        • AWS (1)
        • PHP (35)
        • Python (21)
        • Java (5)
        • SpringBoot (4)
        • JavaScript (2)
        • React (12)
        • MySql (19)
        • MongoDB (1)
      • Daily (8)
      • Study (7)
        • TIL (2)
        • license (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 글쓰기
    • 설정
  • 링크

    • github
  • 공지사항

  • 인기 글

  • 태그

    Git
    chromedriver
    docker
    HTML
    Mac
    Java
    SQL
    php
    ssh
    IP
    Shell
    정규표현식
    CentOS7
    크롤링
    AI
    MySQL
    Python
    GitHub
    리눅스
    db
    스프링부트
    nodejs
    JavaScript
    Selenium
    Linux
    react
    인코딩
    UTF8
    CentOS
    springboot
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
곽진돔
[GitHub] push 실패: private email 설정 때문에 발생하는 오류
상단으로

티스토리툴바