2015-02-04 4 views
63

이 튜토리얼에서 1-6 단계를 따라 가상 컴퓨터에서 gitlabhq rails 서버를 실행하고 rails 서버 명령 sudo -u git -H bundle exec rails s -e production을 시작합니다. 그 후 관리자 도구를 사용하여 사용자를 만들고이 사용자로 새 프로젝트를 만들었습니다. 그런 다음 기존 프로젝트를 항상이 레포로 푸시하려고합니다. 나는 이메일 활성화 링크를 통해) 사용자 (프로젝트 소유자 활성화하지 않은Git push 오류 수신 전 후크가 거부되었습니다.

1), I가 구성되지 않았기 때문에 사후 서비스 :하지만 마지막 단계에서, git push origin master 오류

[remote rejected] master -> master (pre-receive hook declined)

추가 정보와 함께 실패 서버 쪽에서이 설명서에서 지시 사항을 찾지 못했습니다.

2) Gitlab 서버는 프로젝트를 Repo에 푸시하는 방법을 알려주며 경로에는 repositories/이 없습니다. 나는 [email protected]:repositories/user/repo.git 대신에 [email protected]:user/repo.git을 생성한다는 것을 의미한다. 내가 그것을 디버깅하려고 할 때

3), I는 서버의 repo 내부 pre-receive 스크립트를 열고 출력 변수 (중 3)가 시도한 : refs = ARGF.read, key_id = ENV['GL_ID']repo_path = Dir.pwd하고, 그 KEY_ID은 항상 비어 발견했다. 어쩌면 문제는 여기에 있습니다. 그렇다면 해결 방법에 대한 제안을 제게주십시오. 고마워

답변

6

sidekiq과 같은 일부 서비스에서 문제가있는 것으로 보입니다. sudo -u git -H bundle exec rake gitlab:check RAILS_ENV=production을 실행하면 config와 관련된 모든 문제가 출력됩니다. 기본 부호로

0

git 계정에 ssh 키를 추가해야합니다. 오류가 발생하면 이전 ssh 키를 삭제하고 새 ssh 키를 만든 다음 추가하십시오.

+0

. :(로컬 및 로컬 컴퓨터의 루트 및 myuser 모두에서 테스트 됨) – Hroft

+0

git remote -v를 확인하십시오. git repo가 ​​추가 되었습니까? –

+0

'git remote -v'가 출력됩니다. origin \t git @ mygitlabhost : repositories/사용자/repo.git 기원 \t 자식 @의 mygitlabhost (가져 오기) : 완벽하게 작동 – Hroft

91

GitLab protectedmaster 지점 (왜 https://about.gitlab.com/2014/11/26/keeping-your-code-protected/에 참여 Protecting your code 참조). 귀하의 경우 만약 그렇다면, 다음이 도움이 될 수 있습니다

Open your project > Settings [> Repository tab] and go to "Protected branches", select: "Developers can push" and try again.

+1

를 저장소/사용자/repo.git (푸시) –

+3

는 UI가 조금 변경되었습니다 감사합니다! 프로젝트 "설정"후 "저장소"를 클릭 탭을 . "Protected Branches" –

+0

그래서 나는 OP와 같은 문제를 겪고 있었고,이 솔루션은 나를 위해 일했습니다. 감사합니다!하지만 지금은 궁금합니다. 왜 그런가요? 잠시 gitlab을 사용하고 있습니다. 뭐라구? –

2

https://gitlab.com/gitlab-com/support-forum/issues/40을 통해 당신은 프로젝트 또는 마스터 지점에 대한 개발자 액세스 할 수 있습니다. 새로운 작업을 시작하려면 개발자 액세스 권한이 필요합니다.

새로운 작업은 새로운 분기 및 커밋을 의미합니다.

0

이 경우되지 않을 수 있습니다,하지만 내에 대한 해결책이었다 오류 "미리받을 후크을 거부했다"

풀 요청을 통해 수정을 허용 약간의 저장소가 있습니다. 이것은 당신이해야한다는 것을 의미합니다.

  1. 변경 사항을 푸시하려는 분기를 기준으로하여 새 분기를 만듭니다.
  2. 변경 사항을 커밋하고 새 분기로 푸시합니다.
  3. 원래 분기와 병합하기 위해 Pull Request를 엽니 다.
2

Following resolved problem in my local machine:

A. 먼저, 즉 (의 Bitbucket 서버에 연결하기 위해 세부 사항에 올바른 로그를 사용하고 있는지 확인합니다.당신에게 속한 사용자 이름/패스워드/SSH 키)

B. 그런 다음 로컬 Git 구성에 이름/이메일 주소가 올바르게 설정되어 있는지 확인하십시오 : 푸시하려는 계정에 대해 로컬 Git 구성을 설정하십시오 (파일을 커밋 한 사람이라고 확인합니다.) * 이름과 전자 메일 주소 모두에 대해 대/소문자를 구분합니다 (예 : ). 또한 일부 회사 계정에는 이름에 여분의 공백이 포함되어 있습니다. . "Contractor/ space space(LDN)". Bitbucket Server와 동일한 수의 공백을 구성에 포함해야합니다. 걸린 경우 메모장에서 확인하십시오.

C. 잘못된 계정을 사용하는 경우 계정 자격 증명 (사용자 이름/암호/SSH 키)을 바꾸고 다시 시도하십시오.

그렇지 D. 잘못된 지역 구성이 당신이

For MAC

open -a TextEdit.app ~/.gitconfig

참고을 개정 할 필요가있는 경우 : 당신은 오래된 당신이 밀어하려고했던 것을 커밋까지 해결해야합니다.

  1. 마지막 커밋 개정 :

    > git commit --amend --reset-author 
    
       
    
<save and quit the commit file text editor that opens, if Vim then 
    :wq to save and quit> 
    

 
    
    
    


 
    
  2. 시도를 다시 밀어 커밋을 : 도움이되지 않았다

    > git push