푸시 할 때 힘내 오류-수신 전 후크 거부


206

커밋 한 변경 사항을 푸시하려고하면 다음 오류가 발생합니다 ...

git.exe push -v --progress  "origin" iteration1:iteration1

remote: *********************************************************************
To ssh://git@mycogit/cit_pplus.git
! [remote rejected] iteration1 -> iteration1 (pre-receive hook declined)
error: failed to push some refs to 'ssh://git@mycogit/cit_pplus.git'

무슨 일이야?


8
사전 수신 후커 mycogit에 무엇입니까?
rob mayoff

큰 파일을 github에 푸시하려고하지 않습니까?
Adam F

참고 : 오늘 모든 동료 에게이 오류 메시지가 표시되었습니다. 결국 우리는 숨김 서버를 다시 시작하기로 결정했으며 마술처럼 고정되었습니다. 우리는 문제가 실제로 무엇인지 전혀 모른다.
T_D

답변:


125

에 리포지토리를 관리하는 사람에게 문의하십시오 git@mycogit/cit_pplus.git.

커밋은 해당 리포지토리 의 pre-receive후크 에 의해 거부되었습니다 (수신 커밋을 분석하고 리포지토리에 수용하기에 충분한 지 결정하도록 사용자가 구성 할 수있는 스크립트입니다).

그 사람에게 후크를 업데이트하도록 요청하는 것이 좋습니다. 따라서 거부 사유를 인쇄합니다.

관리자가 본인 인 경우 서버 측 설정에 문제가있는 것 같습니다. 자세한 정보를 공유하십시오.


7
필자의 경우 BitBucket은 커밋 메시지 내용에 대한 유효성 검사를 받았으며 현재 오프라인 상태였던 JIRA 티켓과 직면했습니다.
Vítor Neil Avelino

1
온라인 상태가되었을 때
shareef

5
필자의 경우 커밋이 생성 된 사용자 이름과 BitBucket의 사용자 이름이 일치하지 않았습니다. BitBucket 사용자 이름을 업데이트 할 권한이 없으므로 커밋을 재설정하고 업데이트 된 사용자 이름으로 다시 커밋해야했습니다. 이 명령으로 git username을 업데이트 할 수 있습니다git config user.name 'UpdatedUserName'
MM

3
우리의 경우 비트 버킷은 아무도이 지점으로 푸시 할 수 없었습니다.
라몬 Fincken

내 경우에는 bitbucket에서 repo 설정을 찾아서 후크 설정에서 확인 커미터를 비활성화해야했습니다.
Sizons

78

나는 당신이 빨리 감기가 아닌 푸시를 시도하고 있고 훅이 그것을 막고 있다고 확신합니다. 이 경우 git pull --rebase최신 코드베이스에서 로컬 변경 사항을 리베이스하도록 푸시하기 전에 실행 하십시오.


대단해. 이제 다시 밀고 당길 수 있지만 그 전에 업스트림을로 설정해야합니다 git branch --set-upstream-to=origin/myBranch. 답변을 +1하십시오.
AlokeT

새로운 리포지토리에서 나는 (마스터가 아닌) 브랜치를 푸시 한 다음 리베이스하여 푸시하는 동안 오류가 발생했습니다. 웹 후크를 찾지 못했습니다. 나는을 실행 git pull --rebase하고 다시 기지를 세우고 지점을 밀 수있었습니다. 마침내 나는 내 지부가 보호되었다는 것을 알았습니다.
CoolMind

60

파일 크기가 중요합니다. 단일 파일에 대해 ~ 120MB의 제한이 있습니다. 필자의 경우 Visual Studio를 사용하는 .gitignore에 파일이 나열되어 있지만 파일은 여전히 ​​커밋되었습니다. git cli를 사용하면 오류에 대한 자세한 정보를 얻을 수 있습니다.

수신 전 후크 감소는 큰 파일의 결과였습니다. 기본적으로 푸시를 확인합니다.

이를 해결하기 위해 다음을 사용하여 마지막 커밋을 제거했습니다.

git reset --soft HEAD~1

그런 다음 커밋에서 파일을 제외했습니다.

참고 : HEAD ~ N을 사용하여 N 개의 이전 커밋으로 돌아갑니다. (예 : 3, 4) 폴더의 변경 사항을 유지하려면 항상 --soft 스위치를 사용하십시오

도움이되기를 바랍니다.


이것은 내 문제가 원하지 않는 SQL 덤프 파일 (파일 크기 155mb)이 실수로 밀려 났을 때 도움이되었습니다.
Mehrdad Dastgir

1
파일 크기 제한은 호스팅 제공 업체에 따라 다릅니다. GitHub는 그 크기에 한계가 있으며, 다른 것들도 다양하며 자체 호스팅 git에는 자연히 그러한 한계가 없습니다.
1615903

1
푸시 거부 후 이미 커밋이 여러 개인 경우 어떻게해야합니까? 이 난의 repo에 밀어 넣기를 시도하기 전에 이전 커밋 중 하나에 원치 않는 큰 파일 (627메가바이트)가 제 경우입니다
leeCoder

실수로 CSV 파일을 업로드했습니다. 내 경우에는 오류가 그 원인이었습니다.
tonhozi 2016 년

커밋이 여러 개인 경우 인덱스를 증가시켜 헤드를 해당 커밋으로 다시 재설정하십시오. 예를 들어 HEAD ~ 3을 사용하여 3 개의 이전 커밋으로 돌아갑니다. 폴더의 변경 사항을 유지하려면 항상 --soft 스위치를 사용하십시오.
ozkary 2016 년

13

커밋을와 같은 분기로 푸시 할 수있는 액세스 권한이 없기 때문일 수 있습니다 master. 관리자에게 커밋을 푸시 할 수있는 권한을 부여하도록 요청할 수 있습니다.


나는 이것이 맞다고 생각하지만 흥미로운 점은 VS가 실제 분기 이름이 아닌 상위 분기로 푸시하려고하는 것 같습니다. 따라서 부모 분기가 보호되면 이것이 발생하는 것처럼 보이지만 VS에서이를 수정하는 것으로 보이지 않으므로 cmd 줄로 전환해야합니다.
Mark


8

GitLab 서버에서 일부 변경이 진행 중일 때이 메시지가 나타납니다. 다음날 추진은 잘 작동했습니다. 어쨌든 다른 사람들이 지적했듯이 관리자에게 확인하십시오.


1
방금이 문제가 있었고 GitLab이 변경하고 있다고 생각합니다. 10 분 동안 주면 효과가있었습니다. 나는 아무것도 바꾸지 않았다.
woter324

이 문제도 마찬가지였습니다. 이것이 사실인지 확인하고 싶은 사람은 : status.gitlab.com
Renan Ferrari

5

원격 저장소가 허용하는 것보다 큰 파일 크기로 변경 사항을 병합하려고 할 때이 문제가 발생했습니다 (내 경우에는 GitHub)


2
내 경우에도 파일을 삭제 한 후 GitHub에 여전히 불만을 ...하지만이 답변이 트릭했다 stackoverflow.com/questions/19573031/...
CodenameDuchess

5

이 같은 문제가 발생했습니다.
나를 위해 그것을 해결 한 것은 다른 지점으로 전환 한 다음 원래 지점으로 다시 전환하는 것이 었습니다.

밑줄의 원인이 무엇인지 확실하지 않지만 문제가 해결되었습니다.


나는 새로운 지점으로 밀 수 없었다
zabop

3

Bitbucket : 설정에서 분기 권한을 확인하십시오 ( '모두 거부'에있을 수 있음). 그래도 문제가 해결되지 않으면 지점을 새 로컬 지점으로 복제 하고 변경 사항을 원격으로 푸시 한 다음 (새 원격 지점이 생성됨) PR을 만듭니다.


2

누군가를 돕는 경우 :

실행하기 전에 마스터 분기가없는 빈 저장소 (Gitlab에서)를 보호하지 못했습니다. git push -u origin --all

  • git push -u origin master먼저 달려야 했어요
  • 마스터 브랜치를 일시적으로 보호 해제
  • 나머지를 밀고 ( --all& --tags)

2

확인 후 개발자 액세스 권한이 있고 새 지점을 게시 할 수 없다는 동일한 오류가 발생했습니다. 더 높은 액세스 권한을 추가하면이 문제가 해결되었습니다. (Gitlab)


2

GitHub 요점 에서이 오류가 발생했습니다. 하위 디렉토리의 파일로 커밋을 푸시하려고했습니다. gist는 루트 디렉토리에만 파일을 가질 수 있습니다.


이것도 얻었다. repo가 ​​파일 "snippets\\csharp.json"을 가지고 있었으므로 창에 git을 힘들게했습니다.
Carl Walsh

2

보호 된 분기 옵션을 제거하거나 개발자 또는 관리자와 같은 추가 역할이이 오류가 발생한 사용자가 병합 및 푸시를 수행하도록 허용하십시오.


1

필자의 경우 커밋 메시지에 대한 후크가 있으며 서버 스크립트는 커밋 메시지에 대한 특수 형식이있는 경우 커밋을 수락합니다 "<JIRA ID><Message>". 해당 Jira 티켓이 존재하지 않거나 커밋 메시지에 특수 기호가 있으면 커밋을 거부합니다. 커밋 메시지에 /, [,> 등을 추가하면이 오류가 발생하여 잘 제거됩니다.


원본 포스터 (및 향후에 방문하는 다른 사람)는 사전 수신 후크로 구성된 다른 스크립트를 가지므로이 답변은 도움이되지 않습니다.
aronisstav

1

이것은 실제로 BitBucket의 서버 측에서 YACC가 활성화 된 경우에 발생합니다. YACC는 커밋 메시지에서 JIRA 이슈 이름을 언급 할 수 있도록합니다. 따라서 커밋 할 때마다 JIRA 번호를 커밋 메시지에 보관 한 다음 자신의 메시지를 추가 할 수 있습니다.


1

GitKraken을 사용하고 로컬 브랜치를 만든 다음 두 개의 원격 브랜치를 병합 한 다음 로컬 브랜치를 원점으로 푸시하려고했습니다. 동일한 오류 메시지와 함께 작동하지 않았습니다.

솔루션은 했다 로컬 브랜치를 만들고 먼저 밀어 원점 다음 병합을한다.


1

문제 : "PUSH 실패 참조 / 헤드 /-사전 수신 후크 거부"

리포지토리의 크기가 2GB의 하드 제한을 초과했기 때문에 변경 사항을 내 오리진 브랜치 및 특정 프로젝트 리포지토리의 마스터 브랜치로 푸시 할 수 없다는 문제에 직면했습니다. 오류가 발생했습니다. 테스트 데이터를 무의식적으로 다른 테스트 지점의 비트 버킷으로 푸시했기 때문입니다.

PUSH 실패 참조 / 헤드 /-수신 전 후크 거부

따라서 다른 프로젝트 저장소와 동일하며 문제가 없음을 확인하려고 시도했습니다.

고치다:

제 동료는 프로젝트를 로컬로 다시 복제 할 때 프로젝트 크기가 110MB라는 것을 알았습니다. 그래서 우리는 이전에 병합 한 브랜치와 더 이상 필요하지 않은 활성 브랜치를 청소하기 시작했습니다. 청소가 몇 지점에서 완료되면 리포지토리의 크기가 2GB에서 120MB로 크게 줄었다는 것을 깨달았습니다. 그런 다음 변경 사항을 내 지점으로 푸시하려고 시도했지만 작동했습니다.


1

제 경우에는 새로운 저장소가 있었고 지점 ( '마스터'가 아닌 'UCA-46')을 푸시하고 다시 기반을 잡고 강제로 다시 푸시하고 오류가 발생했습니다. 웹 후크가 없습니다. @ThiefMaster가 조언 한대로 실행 git pull --rebase하고 다시 기지만들어야 하고 지점을 밀 수있었습니다. 그러나 그것은 이상하고 어려운 방법이었습니다.

그런 다음 Git 푸시 오류 사전 수신 후크가 감소했습니다 . 나는 나의 지부가 보호 되는 것을 발견했다 . 나는 보호를 제거하고 강제로 다시 밀 수 있었다.

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


0

dokku 인스턴스로 푸시하려고 할 때 이것을 얻었습니다. 서버에 디스크가 가득 찼습니다.

란 : du -f

결과는 다음과 같습니다.

Filesystem      Size  Used Avail Use% Mounted on
udev            476M     0  476M   0% /dev
tmpfs           100M  4.4M   95M   5% /run
/dev/xvda1      7.8G  7.4G  8.9M 100% /

0

나를 위해 원격 자식 서버에 대한 권한 부여는 문제를 해결합니다. 여기에 이미지 설명을 입력하십시오


0

필자의 경우, 실수로 커밋되지 않은 푸시에 거대한 파일을 추가했기 때문에 풀이나 재설정 또는 내가 수행 한 rm에 관계없이 파일을 제거 할 수 없었기 때문입니다.

내 더러운 해결책이지만 실행 가능한 해결책은 현재 디렉토리의 이름을 바꾸고 디렉토리를 로컬로 다시 복제하고 변경 사항을 수동으로 복제 된 로컬 디렉토리에 반영하는 것입니다 ...

잘 들리지 않지만 작동합니다 ...


1
나는 @ozkary가 제안한 것과 $ git reset --soft HEAD ~ 1을 사용하여 같은 문제에 직면했다.
jarrettyeo

0

나에게 오류는 프로젝트에 분기가 생성되지 않았고 내 역할이 개발자이므로 분기를 만들 수 없으며 관련 권한과 모든 것을 순서대로 제공하도록 요청했습니다!


0

master리모컨에 기본 분기 (예 :) 가 아직 없습니다. 따라서 먼저 mastergit remote server에서 브랜치를 생성 한 README.md다음 (예 : 기본 파일 생성 ) push이 명령을 사용하여 기존의 모든 로컬 브랜치를 시도 하십시오.

git push -u origin --all

0

나를 위해 Bitbucket이 오늘 정책을 자동으로 변경할 때까지 모든 것이 잘 작동했습니다 (2020 년 4 월 21 일). 이것은 오늘 Workspaces 라는 새로운 기능과 일치하기 때문에 이와 관련이 있다고 생각합니다.

해결 방법 : 관리자 (관리자)는 UI에서 사용자에게 전자 메일 주소를 추가하기위한 지침을 따랐습니다 (사용중인 전자 메일을 찾을 수 있음)git config --list

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


-7

node.js 버전을 지정하면 다음과 같은 문제를 해결할 수 있습니다

{
  "name": "myapp",
  "description": "a really cool app",
  "version": "1.0.0",
  "engines": {
    "node": "10.3.0"
  }
}
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.