내 자격 증명( )을 사용하여 저장소를 복제할 때 이상한 문제가 발생했습니다 [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
하고 부적절한 작성자와의 모든 커밋을 재설정하고 다시 커밋하십시오.