원격으로 git push 실패 : 오류 : refs / heads / master를 업데이트하기 위해 후크가 거부되었습니다.


9

최근에 커뮤니티 git repo에서 내 프로젝트를 시작하려고하는데 몇 가지 문제가 있습니다. 나는 git을 처음 사용하지만 여기에 테스트하려고 시도한 것이 있습니다.

다음 명령을 실행하면 모두 정상적으로 실행됩니다.

git config --global user.name "MYNAME"
git config --global user.email "MYEMAIL"
mkdir testproject
cd testproject
git init
touch README
git add README
git commit -m 'first commit'
git remote add origin git@git.xxxxx.org:community/testproject.git

위의 모든 명령은 오류없이 실행됩니다. 그러나 다음 명령을 실행하면 큰 오류가 발생합니다.

git push -u origin master

오류가 있습니다.

Counting objects: 3, done.
Writing objects: 100% (3/3), 204 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
Username for 'http://git.xxxxxx.org': MYEMAIL
Password for 'http://MYEMAIL.com@git.xxxxxx.org': 
remote: /usr/local/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/spec_set.rb:92:in `block in materialize': Could not find rake-10.1.0 in any of the sources (Bundler::GemNotFound)
remote:         from /usr/local/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/spec_set.rb:85:in `map!'
remote:         from /usr/local/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/spec_set.rb:85:in `materialize'
remote:         from /usr/local/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/definition.rb:114:in `specs'
remote:         from /usr/local/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/definition.rb:159:in `specs_for'
remote:         from /usr/local/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/definition.rb:148:in `requested_specs'
remote:         from /usr/local/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/environment.rb:18:in `requested_specs'
remote:         from /usr/local/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/runtime.rb:13:in `setup'
remote:         from /usr/local/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler.rb:120:in `setup'
remote:         from /usr/local/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/setup.rb:17:in `<top (required)>'
remote:         from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
remote:         from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
remote: error: hook declined to update refs/heads/master
To http://git.xxxxxx.org/community/testproject.git
 ! [remote rejected] master -> master (hook declined)
error: failed to push some refs to 'http://git.xxxxxx.org/community/testprojact.git'

나는 여기서 무엇을 해야할지 잘 모르겠지만 도움이 많이 필요합니다.

또한 중요한 경우 아치를 실행하고 있습니다.

편집 : 레이크를 다시 설치하려고했지만 작동하지 않았습니다. 내 레이크의 현재 버전은 10.1.1이므로 제거하고 버전 10.1.0으로 바꾸려고 시도했지만 해결되지 않았습니다.

그러나 레이크를 설치할 때 오류가 발생했습니다.

WARNING:  You don't have /home/josh/.gem/ruby/2.0.0/bin in your PATH,
          gem executables will not run.

이것이 문제에 기여할 수 있습니까?

답변:


9

원격이 데이터 수신을 거부 한 것은 실제 문제의 부작용 일뿐입니다 .git은 원격 엔드의 후크 중 하나가 종료 상태> 0으로 실패하여 거부되었다고 생각합니다. 루비 트레이스 백). 후크 중 하나가을 사용하려고 시도하여 rake찾을 수없는 것 같습니다. 특정 리포지토리에는 문제가되지 않습니다. 이 메시지는 로컬 컴퓨터에서 온 것이 아닙니다. 접두사가 "원격"으로 시작하고 누락 된 원격 장치rake 이므로 해당 쪽의 sysadmin 만 문제를 해결할 수 있습니다.

커뮤니티 git 저장소를 관리하는 사람에게 문의하는 것이 좋습니다.


바로 내가 생각한 것입니다. 내 자식 리포지토리의 후크는 활성화되어 있지 않으며 지금까지 내가 한 일은 오류를 변경하거나 새 것을 만들지 않는 것 같습니다. 레포 소유자에게 연락하여 문제에 대한 정보가 있는지 확인합니다.
Joshua Strot

문제는 GitLab에서 지원되지 않는 HTTP 메소드를 푸시하려고한다는 것입니다. 대신 SSH를 넘겨야합니다. 훌륭하게 작동합니다. 말할 필요도 없었습니다.
Joshua Strot

0

나는 이것이 당신의 문제라고 생각합니다.

remote: error: hook declined to update refs/heads/master
To http://git.xxxxxx.org/community/testproject.git
 ! [remote rejected] master -> master (hook declined)

이 오류 검색 SO 에서이 Q & A를 발견했습니다. 오류 : 후크가 분기를 푸시하는 동안 refs / heads / external_pub를 업데이트하지 않았습니다 .

서버에 푸시를 거부 하는 자식 후크 가있는 것으로 보입니다 .

발췌

서버 측 후크

클라이언트 측 후크 외에도 몇 가지 중요한 서버 측 후크를 시스템 관리자로 사용하여 거의 모든 종류의 프로젝트 정책을 시행 할 수 있습니다. 이 스크립트는 서버에 푸시하기 전후에 실행됩니다. 사전 후크는 언제든지 0이 아닌 상태로 종료하여 푸시를 거부하고 클라이언트에 오류 메시지를 다시 인쇄 할 수 있습니다. 원하는만큼 복잡한 푸시 정책을 설정할 수 있습니다.

이 오류 메시지가 나타나는 이유를 확인하려면 어떤 후크가 걸려 넘어 졌는지 알아 내야합니다. 후크는 hooksgit 폴더 내부 의 폴더에 저장됩니다 (원격 서버 쪽). pre-receive후크 또는 update후크를 찾아 문제의 원인을 확인하십시오.


내 hooks 폴더 안에 .sample 확장자를 가진 여러 파일이 있습니다. 사전 수신 후크가 없지만 업데이트 후크가 있습니다. 그들은 모두 .sample 확장명을 가지고 있기 때문에, 그들 중 어느 것도 사용하고 있다고 생각하지 않습니다. 그래서 그것이 나를 거부하는 서버의 후크 일 수 있습니까? 나는 온라인을 보았고 여러 가지 일을 통해 문제를 해결 한 내 문제를 가진 두 사람이 있습니다.
Joshua Strot

0

GIT 리포지토리에서 역할 / 그룹 및 권한 확인 내 경우에는 GIT 리포지토리 팀에서 제공 한 읽기 / 쓰기 액세스 후 빨간색 권한 만 해결되었습니다.


0

@Radhakrishnan이 이미 제안 했으므로 권한 문제가 발생할 수 있습니다.

Redmine Git Hosting을 사용하는 경우 , git의 추적 참조를 다시 작성하려는 사용자 에게 프로젝트 권한 관리자 역할이 지정되어 있는지 확인하십시오 .

동일한 원격 브랜치를 공유하는 다른 사용자에게 git push-force 영향에 대해 알고 있다고 가정합니다 . 자세한 내용은 이 기사를 확인하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.