GitLab: 에 대한 커밋을 푸시할 수 없습니다. 자신의 확인된 이메일 중 하나로 커밋된 커밋만 푸시할 수 있습니다.

GitLab: 에 대한 커밋을 푸시할 수 없습니다. 자신의 확인된 이메일 중 하나로 커밋된 커밋만 푸시할 수 있습니다.

내 자격 증명( )을 사용하여 저장소를 복제할 때 이상한 문제가 발생했습니다 [email protected]. 하지만 항상 다음 메시지를 받기 때문에 변경 사항을 푸시할 수 없습니다.

GitLab: You cannot push commits for '[email protected]' . You can only push commits that were committed with one of your own verified emails.

문제는 전역 및 저장소 사용자를 확인할 때 다음과 같다는 것입니다 [email protected].

글로벌(아래에서 내 정확한 주소를 확인):

git config  --global user.email
git config  --global user.name

저장소(아래에서 내 정확한 주소를 확인함):

git config  user.email
git config   user.name

어떻게 해야 하며, 이 신비한 신비의 이유는 무엇입니까?

답변1

이 git 명령을 사용하여 동일한 문제를 해결할 수 있었습니다.

git commit --amend --reset-author --no-edit

처음에 잘못된 이메일로 커밋을 시도했지만 user.name과 user.email을 git config --global올바른 이메일로 설정한 후에도 위와 같은 "...에 대한 커밋을 푸시할 수 없습니다."라는 오류가 계속 발생했습니다.

해결책은 git에서 작성자를 재설정하는 것이었습니다. 그런 다음 푸시가 Gitlab에 승인되었습니다.

참고로:https://github.com/git-tips/tips#revert-undo-a-commit-by-creating-a-new-commit

답변2

제 경우에는 GitLab 프로젝트에 커미터 제한이 있었습니다. "사용자는 자신의 확인된 이메일 중 하나로 커밋된 커밋만 이 저장소에 푸시할 수 있습니다." 내 컴퓨터에서도 SSH를 구성했기 때문에 내 사용자 이메일이 내 컴퓨터 주소로 git 전역 파일에서 업데이트되었으므로 원격에서 PUSH를 허용하지 않습니다.

gitlab-> 설정 -> 리포지토리 -> 푸시 규칙에서 이를 찾을 수 있습니다. 이 커밋 제한을 비활성화하면 작동합니다.

답변3

git commit --amend --reset-author --no-edit마지막 커밋에서만 작성자를 변경합니다. 커밋이 여러 개인 경우에도 푸시할 수 없습니다.

로 확인 git log하고 부적절한 작성자와의 모든 커밋을 재설정하고 다시 커밋하십시오.

답변4

모든 커밋을 진행하고 이메일을 변경할 필요가 없도록 푸시 제한을 비활성화할 수 있습니다.

여기에 이미지 설명을 입력하세요

관련 정보