GitHub 메시지의 의미 : 이메일 개인 정보 제한으로 인해 푸시 거부


201

github에서 Pull Request를 수락하고 병합했으며 이제 커밋을 더 이상 가져올 수 없습니다.

메시지는 다음과 같습니다

! [remote rejected] master -> master (push declined due to email privacy restrictions)
error: failed to push some refs to 'git@github.com:FranckFreiburger/vue-resize-sensor.git'


git did not exit cleanly (exit code 1) (3838 ms @ 12/04/2017 21:23:11)

이제 어떻게해야합니까?


1
나는 문서의 페이지를 발견 : help.github.com/en/github/...
세바스찬 Norr

답변:


398

원격 저장소는 개인 전자 우편 주소를 나타내는 커밋을 푸시하지 못하도록 구성되었습니다. 예를 들어 GitHub 에서이 기능사용 하려면 내 이메일을 노출 시키는 블록 명령 행 푸시 확인란을 선택했습니다 .

내 이메일을 노출시키는 차단 명령 행 푸시

물론 해당 설정의 선택을 취소 할 수 있지만 저장소에 액세스 할 수있는 모든 사람이 작성자 정보를 읽을 수 있으므로 개인 전자 우편 주소가 전 세계의 모든 사람에게 노출됩니다.

대신 다음을 수행하십시오.

  1. Git에서의 커밋에 기본적으로 사용되는 개인 이메일 주소를 볼 수 있습니다.

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

    {ID}+{username}@users.noreply.github.com

    내 이메일 주소를 비공개로 유지

  3. 글로벌 사용자 이메일 주소 설정을 GitHub 비 응답 주소로 변경하십시오.

    git config --global user.email {ID}+{username}@users.noreply.github.com
  4. 마지막 커밋에 대한 작성자 정보를 재설정하십시오.

    git commit --amend --reset-author

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

  5. 이제 회신 이메일 주소로 커밋을 푸시 할 수 있으며 향후 커밋에는 회신 이메일 주소도 있습니다.

    git push

4
아니, 그것은 내 곁에 매력처럼 일했다. 아마도 당신은 한 단계를 잊었을 것이다. 가능한 해결책이 모두 나와 있기 때문에 이것이 정답입니다.
Ioanna

4
덕분에, 나는 2 단계 워스 눈여겨볼에서 오류를했을 수도 생각보다 다른 전자 메일을 설정하기 때문에 명시 적으로,이 Virtlink의 지시 @ 따라야한다는 것입니다 <your_uname>@users.noreply.github.com(자신에 설정처럼 None당신의 커밋을 표시되지 발생합니다) 프로필 페이지의 그래프
adamczi

3
나는 비슷한 신비한 문제가 있었다. 내 실수는 git commit --amend --author "first last me@users.noreply.github.com"그랬고 그렇지 않은 것 같습니다. 당신은 정말 재설정 할 필요가 user.email위와 같이 정확하게 구성 매개 변수를. 건배!
msanford

6
Virtlink가 제공하는 4 단계는이 오류를 극복하는 데 중요했습니다. 응답이없는 전자 메일 주소를 사용하도록 구성에서 user.email을 설정했지만 푸시 명령은 여전히 ​​개인 전자 메일 게시에 대한 좌절 오류를 반환했습니다. 내가 푸시하려고했던 커밋을 수정하면 푸시를 허용했습니다.
teaman

3
단일 저장소의 이메일 주소 만 변경할 수 있습니다. 이 답변은 도움이되었지만 github의 도움말을 참조해야 합니다. 단일 리포지토리에 대한 전자 메일 주소 설정
gfullam

146

전자 메일 주소를 노출시키는 명령 줄 푸시를 차단 하는 새로운 GitHub 설정 때문일 수 있습니다.

이메일 설정 에서 "내 이메일을 노출시키는 차단 명령 행 푸시"상자를 선택 해제 한 후 다시 누르십시오.


20
이 옵션을 선택 취소하면 개인 이메일 주소가 노출됩니까?
Franck Freiburger

14
그렇습니다.하지만 커밋을 리포지토리에 푸시 한 경우 이미 이메일 주소를 노출했습니다. Github에서 이메일 주소를 표시하지 않더라도 리포지토리를 복제하면 동일한 것을 볼 수 있으며,이 새로운 방지 푸시 기능으로 방지 할 수 있습니다.
Lasse V. Karlsen

10
이것은 의심스러운 해결책입니다. 적어도 귀하의 이메일 주소가 전 세계에 노출 될 것이라고 언급하십시오.
kovac

Daniel AA PelsmaekerWinfried 가 더 좋은 답입니다.
Peter Mortensen

1

나는 다음과 같이 오류를 해결했다.

git config --global user.email ""

이것은 단지 내 이메일을 공백 (빈 문자열)으로 설정했습니다. 이제 다음을 사용하여 개별 프로젝트에서 이메일을 설정했습니다.

git config user.email "myemail@domain.com"


0
  1. github.com으로 이동하여 프로필을 클릭하십시오.
  2. 설정으로 바로 가기
  3. 왼쪽 탐색 패널에서 '이메일'을 클릭하십시오.
  4. '내 이메일 주소를 비공개로 유지'필드를 검색하십시오.
  5. 이 옵션을 선택 해제하십시오
  6. 이제 다시 확인하십시오. 문제가 해결 된 것 같습니다.

2
이것은 작동하지만 개인 전자 메일 주소가 노출됩니다. 개인 정보 보호가 염려되면 다른 솔루션을 참조하십시오.
kaznovac

-1

내 이메일을 표시하는 명령 행 푸시 차단을 선택 취소 한 후 명령 행에서 코드를 푸시하십시오.


적용 가능한 같은 것을 알고 있습니까?
LOG_TAG

이것은 작동하지만 개인 전자 메일 주소가 노출됩니다. 개인 정보 보호가 염려되면 다른 솔루션을 참조하십시오.
kaznovac

그것은 Jordan Lewis의 대답과 어떻게 다릅니 까?
Peter Mortensen
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.