Gitlab에서 Repository를 만들고 코드를 push 하려고 하는데, pre-receive hook declined
에러가 발생하면서 push가 실패했습니다.
$ git push -uf origin main
...
remote: GitLab: You are not allowed to force push code to a protected branch on this project.
To https://gitlab.com/xxx/xxxx.git
! [remote rejected] main -> main (pre-receive hook declined)
error: failed to push some refs to 'https://gitlab.com/xxx/xxxx.git'
구글링을 해보니 Protected branches의 정책으로, Git Repository를 생성할 때 기본적으로 Maintainer에게만 push 권한이 부여되고 Developer에게는 권한이 부여되지 않는 것 같습니다. Settings에서 권한 재설정으로 push가 되도록 문제를 해결할 수 있습니다.
해결 방법
브랜치 생성 시 main 브랜치가 Protected branches
로 설정되어 Developer는 push를 할 수 없었습니다.
중요도에 따라서 Maintainer가 처리하거나, Developer가 직접 할 수 있도록 권한 설정을 할 수 있습니다. 저는 혼자 사용하는 git이기 때문에 Protected branch
를 사용하지 않도록 변경하였습니다.
GitLab의 Project에서 Settings -> Protected branches
로 들어가시면 다음과 같이 권한을 변경하거나 사용하지 않도록 변경할 수 있습니다.
위와 같이 Unprotected
브랜치로 변경 후, 다시 push
를 해보니 성공하였습니다.
$ git push -uf origin main
Enumerating objects: 89, done.
Counting objects: 100% (89/89), done.
Delta compression using up to 8 threads
Compressing objects: 100% (85/85), done.
Writing objects: 100% (89/89), 5.90 MiB | 3.87 MiB/s, done.
Total 89 (delta 23), reused 0 (delta 0), pack-reused 0
To https://gitlab.com/xxx/xxxx.git
+ 57be214...9f1fe50 main -> main (forced update)
Branch 'main' set up to track remote branch 'main' from 'origin'.
References
Loading script...
Related Posts
- Python - Yaml 파일 파싱하는 방법
- Python - pip와 requirements.txt로 패키지 관리
- 유튜브 쇼츠(Shorts) 자막 끄기/켜기
- SOLID 원칙, 객체지향 설계 5가지 원칙
- Ubuntu 20.04 - Nginx로 React를 배포하는 방법
- 애드센스 '구글 검색 기능' 블로그에 추가
- 트위터 이메일 안오게, 알림 끄기
- 인스타그램 동영상, 사진 저장 방법
- Git 설치 방법 (Ubuntu, Windows)
- Python pip 설치 (Ubuntu / Windows)
- 마우스 우클릭 복사 방지 해제 방법 (크롬)
- Python 에러 해결, 'conda' 용어가 cmdlet, 함수, 스크립트 ... 인식되지 않습니다.
- Python 에러 해결, AttributeError: module 'jwt' has no attribute 'encode'
- Atom - 코드 자동 정렬
- Sublime Text - 코드 자동 정렬, 단축키 설정
- VSCode에서 탭 간격 설정 (Tab to 4 spaces)
- Visual Studio Code에서 코드 자동 정렬
- 구글 검색 기록 삭제, 자동 저장 끄기 (PC, 모바일)
- 안드로이드 개발자 옵션 활성화, USB 디버깅 켜기
- 유튜브 채널 차단, 해제 방법 (PC, 모바일)
- 유튜브 미리보기 자동재생 끄기 (자동 소리 끄기/켜기)
- PC에서 유튜브 모바일 버전(m.youtube.com)으로 보기
- 모바일에서 유튜브 PC버전으로 보기
- 유튜브 시간 링크 만들기, 댓글에 시간 태그 입력하기
- 유튜브 스크립트 함께 보기, 자막 추출 방법
- 유튜브 알고리즘 초기화, 검색 기록과 시청 기록 삭제
- 유튜브 '싫어요' 숫자 다시 보이게 하기
- 구글 크롬, 방금 닫은 탭 다시 열기
- Maven으로 Java프로젝트 build하는 방법
- node.js, npm 버전 확인 방법 (터미널, cmd 명령어)
- GitLab - 'pre-receive hook declined' 에러 해결
- Javacript Heap Out Of Memory 문제 해결
- SSH key 생성하고 GitHub에 등록
- GMT, UTC의 차이점
- Linux(Ubuntu)에 Adobe Photoshop, Illustrator 설치하는 방법