"푸시하면 개인 이메일 주소가 게시됩니다"오류


113

저는 GitHub / VCS를 처음 사용합니다 .

GitHub에서 프로젝트를 공유하려고하면 다음과 같은 오류 메시지가 표시됩니다.

    Can't finish GitHub sharing process
    Successfully created project 'myproject' on GitHub, but initial push failed:
    remote: error: GH007: Your push would publish a private email address.
    failed to push some refs to 'https://github.com/me/myproject.git'

오류 메시지를 봤는데 안타가 없습니다. Stack Exchange도 검색했지만 시가는 없습니다. 이 문제를 어떻게 해결할 수 있습니까?

답변:


69

동일한 error: GH007메시지를 경험했으며 다음을 사용하여 문제를 해결했습니다.

  1. 커밋 이메일 주소 설정으로 이동합니다 .
  2. 컴퓨터의 모든 저장소에 대한 이메일 주소 설정을 따릅니다 .
  3. GitHub 계정을 열고 설정이메일 로 이동합니다 .
  4. 내 이메일 주소를 비공개로 유지 확인란을 선택합니다 .
  5. 내 이메일을 노출하는 명령 줄 푸시 차단 확인란을 선택 취소합니다 .

하지만 이메일 주소가 노출 될 수 있습니다.


24
이것은 해결책이지만 실제로 이메일 주소를 노출 할 수 있습니다. 아직 푸시되지 않은 커밋이있는 경우 내 이메일을 노출하는 명령 줄 푸시 차단 을 선택 취소해야합니다 . 그런 다음 보류중인 커밋을 푸시 할 수 있습니다. 그런 다음 이메일 주소를 회신 금지 이메일 주소로 업데이트하고 내 이메일을 다시 노출하는 명령 줄 푸시 차단 을 선택하여 주소를 비공개로 유지합니다.
SvenAelterman

5
@SvenAelterman update your email address to the no-reply email address어디? github 설정 또는 개인 이메일 주소를 전송 / 사용하는 로컬 머신 어딘가에서? 체크 박스를 클릭하는 대신 github에서 생성 한 이메일 주소를 github에 직접 복사하여 붙여 넣어야한다는 것이 직관적이지 않습니다. 따라서 읽기가 잘못되었다고 가정합니다. 아니면 ??
hippietrail

15
최신 커밋 사용하기 위해 이메일을 변경하려면git commit --amend --author="Author Name <email@address.com>"
dspacejs

9
여기서 @Winfried의 솔루션을 사용하는 것이 훨씬 좋습니다 . 공개적으로 이메일 주소를 노출하지 않음
코너

8
동의합니다. 정답은 @Winfried의 stackoverflow.com/a/51097104/7872793 입니다.
Shane

236

"내 이메일을 노출하는 명령 줄 푸시 차단"기능을 활성화 할 때 응답없는 이메일 주소를 사용하도록 Git을 구성 할 수도 있습니다. 걱정하지 마세요. 기여도 그래프에는 영향을주지 않습니다. 모든 커밋은 여전히 ​​귀하의 계정과 연결됩니다.

  1. 터미널을 엽니 다.

  2. 현재 작업 디렉토리를 Git 커밋과 연결하는 이메일 주소를 구성하려는 로컬 저장소로 변경합니다.

  3. GitHub의 개인 설정 → 이메일 에서 GitHub noreply 주소를 찾으십시오 . 내 이메일 주소를 비공개로 유지 확인란 의 설명에 언급되어 있습니다. 일반적으로 고유 식별자와 사용자 이름으로 시작합니다.

  4. Git에서 이메일 주소를 설정하십시오. GitHub에서 제공 한 무응답 이메일 주소를 사용합니다.

    • 컴퓨터의 모든 저장소에 대한 이메일 주소 설정

      git config --global user.email "{ID}+{username}@users.noreply.github.com"
      
    • 단일 저장소에 대한 이메일 주소 설정

      git config user.email "{ID}+{username}@users.noreply.github.com"
      
  5. 마지막 커밋에서 작성자 정보를 재설정합니다.

    git commit --amend --reset-author
    

    개인 전자 메일 주소로 여러 커밋 이있는 경우이 답변을 참조하십시오 .

  6. 이제 noreply 이메일 주소로 커밋을 푸시 할 수 있으며 향후 커밋에는 noreply 이메일 주소도 포함됩니다.

    git push
    

Git를 구성하면 커밋은 대체 "noreply"이메일 주소를 사용하며 그렇지 않은 푸시는 거부됩니다.


28
이것은 받아 들여진 대답이어야합니다. @ sofia-fernandez 답변은 이메일 주소를 노출 할 수 있습니다. 좀 더 짧고 읽기 쉽게 만들 수있는 방법이 있습니까? 당신은 유일한 차이점은 두 개의 주요 섹션이 --global플래그
코너

Linux 인터페이스에 문제가 발생했습니다 (SourceTree 터미널을 사용했고 VI를 사용한 지 어느 정도 시간이 지났습니다) -m <comment>.이를 피하려면 추가 할 수 있습니다 .
MikeL

2

GitHub의 이메일 개인 정보 보호 기능을 활성화했거나 기본적으로 활성화되어있을 것입니다.

이 페이지의 GitHub 도움말 에 자세히 설명되어 있습니다 .

간단히 말해, 사용자가 실제 이메일 주소 인 경우 푸시를 방지하는 토글 (계정에서 활성화 됨)이 있습니다. 대신 익명 주소를 사용할 수 있습니다 (또는 기능 비활성화를 선택).

두 옵션에 대한 자세한 내용 은 동일한 페이지에서 확인할 수 있습니다 .


감사! 내 이메일 주소를 익명으로 처리하여 문제가 해결되었습니다!
user156060

익명화 된 이메일 주소를 사용하는 것이 좋은 해결책입니다. 2017 년 7 월 18 일 이전에 만든 경우 7 개의 임의의 숫자를 추가하기 위해 다시 만들 수 있습니다.
SvenAelterman

Winfried의 대답 은 독립적 인 대답입니다.
Peter Mortensen

0
  1. 이동 Settings
  2. 를 클릭하십시오 Emails. 아래로 스크롤합니다. Keep my email addresses private섹션이있을 것입니다.
  3. 거기에 언급 된 공개 이메일 ID를 기록해 둡니다.
  4. 다음 명령을 사용하여 이전 단계에서 언급 한 공개 이메일 ID로 로컬 글로벌 이메일 ID를 재설정하십시오.
$ git config — global user.email "<user_email_id>"
  1. 차단 된 마지막 로컬 커밋을 되돌립니다.
$ git reset --soft HEAD~1 
  1. 새로운 커밋을 만들고 푸시하십시오. 작동합니다.

-2

나는 같은 문제가 있었다. 내 솔루션 은 아래 그림에 있습니다.

GitHub 설정


7
당신은 모든 스크레이퍼 및 개방 이메일을 게시 설정,하지만 당신은 거기 흐리게
Lesto

수락 된 답변 (거의 1 년 전에 게시 됨)과 어떻게 다른가요?
Peter Mortensen
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.