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 또는 유사 파일을 밀어서 시작할 수 있습니다. 나중에 모든 것이 이전과 같이 작동합니다.


답변

이 문제가 나타 났을 때 나는 Windows에있었습니다.

사용자 이름과 비밀번호를 입력하기 전에 오류가 발생하기 때문에 이상합니다. 캐시 나 이와 비슷한 것이 있다면 어떨까요? 나는 그것을 온라인으로 파고 gitlab의 지원 포럼 에서이 답변을 찾았습니다 .

“제어판 => 사용자 계정 => 자격 증명 관리 => Windows 자격 증명”을 엽니 다. https : //@github.com에 대해 두 개를 찾았고 하나는 잘못된 사용자였습니다. 나는 그것을 삭제하고 다음 “git push”에서 올바른 자격 증명을 제공하고 다시 제공했습니다. 다른 참고 사항-이것은 git 리모컨에서 발생할 수 있습니다.

Windows 자격 증명에서 이전 계정에 대한 두 개의 GitLab 항목을 찾았습니다. 둘 다 제거하면 이제 작동합니다!

패널 :

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


답변

이것은 Gitlab의 기능으로 간주됩니다.

Maintainer / Owner이 문서에 명시된 것처럼 액세스는 기본 및 보호 분기에 대해 강제로 다시 푸시 할 수 없습니다.
여기에 이미지 설명을 입력하십시오