Programing

GitLab 오류 수정 :“이 프로젝트에서 보호 된 분기에 코드를 푸시 할 수 없습니다”?

lottogame 2020. 3. 20. 08:14
반응형

GitLab 오류 수정 :“이 프로젝트에서 보호 된 분기에 코드를 푸시 할 수 없습니다”?


프로젝트에 개발자 액세스 권한이있는 동안 코드를 git으로 푸시하면 문제가 있지만 마스터 액세스 권한이 있으면 모든 것이 정상입니다. 문제는 어디에서 발생합니까? 그리고 그것을 고치는 방법?

에러 메시지:

오류 :이 프로젝트에서 보호 된 분기로 코드를 푸시 할 수 없습니다.
...
오류 : 일부 참조를 푸시하지 못했습니다 ...


문제는 없습니다. 모든 것이 예상대로 작동합니다.

GitLab에서는 일부 브랜치를 보호 할 수 있습니다. 기본적으로 유지 관리 / 소유자 사용자 만 보호 된 분기에 커밋 할 수 있습니다 ( 권한 문서 참조 ). master브랜치 (branch)는 기본적으로 보호되어 있으며, 개발자는 메인 코드에 통합하기 전에 프로젝트 관리자가 병합 요청을 검증하도록 강제합니다.

프로젝트 설정에서 선택한 브랜치에 대한 보호 기능을 켜고 끌 수 있습니다 (GitLab 버전에 따라 다릅니다. 아래 지침 참조).

동일한 설정 페이지에서 개발자가 보호 된 분기로 푸시 할 수도 있습니다. 이 설정을 사용하면 보호가 필요한 작업 거부 git push --force(리베이스 등) 로 보호가 제한됩니다 .

GitLab 9.3부터

프로젝트로 이동 : "설정"→ "저장소"→ "보호 된 분기"의 "확장"

여기에 이미지 설명을 입력하십시오

이 변경 사항이 언제 도입되었는지 잘 모르겠습니다. 스크린 샷은 10.3 버전입니다.

이제 선택한 분기로 병합 또는 푸시 할 수있는 사용자를 선택할 수 있습니다 (예 : 푸시 요청 master을 전혀 해제 하여 분기에 대한 모든 변경을 병합 요청을 통해 수행하도록 할 수 있음). 또는 "보호 해제"를 클릭하여 분기에서 보호를 완전히 제거 할 수 있습니다.

GitLab 9.0부터

GitLab 9.3과 유사하지만 "확장"을 클릭 할 필요가 없습니다. 모든 것이 이미 확장되었습니다 :

"설정"→ "저장소"→ 프로젝트로 이동하여 "보호 된 분기"로 스크롤하십시오.

여기에 이미지 설명을 입력하십시오

프리 깃랩 9.0

프로젝트 : "설정"→ "보호 된 지점"(지정된 프로젝트의 '마스터'인 경우).

설정 → 보호 된 분기

그런 다음 "보호 해제"또는 "개발자가 푸시 할 수 있음"을 클릭하십시오.

여기에 이미지 설명을 입력하십시오


GitLab Enterprise Edition 9.3.0 용

기본적으로 마스터 브랜치는 보호되므로 보호 해제하십시오. :)

1- "프로젝트"를 선택하십시오

2- "리포지토리"를 선택하십시오

3- "분기"를 선택하십시오

4- "프로젝트 설정"을 선택하십시오

5- "보호 된 지점"에서 "확장"하려면 클릭

6- "보호 해제"버튼을 클릭 한 후


로컬 gitlab 서버의 "빈 지점"에서이 오류가 발생했습니다. 어떤 사람들은 "빈 지점에서 처음으로 밀 수 없다"고 언급했습니다. 브라우저를 통해 gitlab에 간단한 README 파일을 만들려고했습니다. 그런 다음 모든 것이 놀랍게 해결되었고 문제가 해결되었습니다! 나는 내가 주인이고 지점이 보호되지 않았다고 언급했다.


링크별로 변경해보십시오

https://docs.gitlab.com/ee/user/project/protected_branches.html

관리자 또는 개발자가 커밋하도록 프로젝트를 보호되지 않은 상태로 만듭니다.


이 문제에 대한 간단한 해결책은 gitlab에서 소유자 역할을하는 사람과 빠른 대화를 나누는 것입니다. 그는 하나의 파일 READ.md 또는 유사 파일을 밀어서 시작할 수 있습니다. 나중에 모든 것이 이전과 같이 작동합니다.


내 저장소에서 동일한 문제가 발생했습니다. 나는 저장소의 주인이지만 그런 오류가있었습니다.

프로젝트의 보호를 해제 한 다음 다시 보호하고 오류가 사라졌습니다.

우리는 이전 푸시와 문제가있는 푸시 사이에서 gitlab 버전을 업그레이드했습니다. 이 업그레이드로 버그가 발생했다고 가정합니다.


위의 솔루션은 문제가 무엇인지 명확하게 설명합니다. 리포지토리를 제어 할 수없는 경우 코드를 제출하는 가장 좋은 방법은 원본 리 포크의 포크를 만들고이 새 리포지토리에 코드를 제출하여 나중에 원래 리포지토리로 푸시 할 수 있습니다.

참고 : https://stackoverflow.com/questions/32246503/fix-gitlab-error-you-are-not-allowed-to-push-code-to-protected-branches-on-thi

반응형