2011-11-02 32 views
63

当我尝试和推动改变我COMMITED,我得到以下错误...Git的错误 - 前收到钩下降

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

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

这是怎么回事?

+7

什么是预先接收hookon mycogit? –

+0

你不会试图将大文件推送到github吗? –

+0

仅供参考:今天我所有的同事都收到了这个错误消息,最终我们决定重启我们的存储服务器,并且它被修复了。我们不知道这个问题实际上是什么。 –

回答

46

您应该询问维护回购的人是否在[email protected]/cit_pplus.git

您的提交被该回购的pre-receive hook拒绝(这是一个用户可配置的脚本,旨在分析传入的提交并决定它们是否足以被接受回购)。

这也是一个好主意,要求该人更新挂钩,因此它会打印拒绝的原因。

如果维护人员是你自己,那么它看起来像你在服务器端的设置有问题。那么请分享更多信息。

+0

就我而言,BitBucket验证了提交消息的内容,并与当时处于脱机状态的JIRA票证进行了面对面的对话。 –

+1

所以当它变成网上它的固定? – shareef

+0

如果回购是在heroku? –

42

我敢打赌,你正在尝试一个非快速前进的推动和挂钩阻止它。如果是这种情况,只需运行git pull --rebase,然后再推送最新代码库中的本地更改。

5

这可能是造成你我以前不具有推提交到一个分支,比如主人的权利,试图合并修改时,你可以问维护者给你推

+0

我认为这是正确的,但有趣的是VS似乎试图推送到父分支,而不是实际的分支名称到远程。所以,如果父分支受到保护,这似乎正在发生,但似乎无论如何在VS中纠正此问题,并且您必须切换到cmd行。 – Mark

4

我有这个问题的权利与文件大小远远超过允许远程存储库(在我的情况下,它是GitHub)

+2

在我的情况下,甚至在删除文件GitHub仍然抱怨...但这个答案做了窍门https://stackoverflow.com/questions/19573031/cant-push-to-github-because-of-large-file-which -i-already-deleted – CodenameDuchess

17

文件大小是重要的。单个文件有一个大约120MB的限制。在我的情况下,使用Visual Studio的.gitignore列出了该文件,但该文件仍被提交。当使用git cli时,我们可以获得有关错误的更多详细信息。

pre-receive hook谢谢大文件。基本验证推送。

要解决这个问题,我删除了最后一次提交使用:

git reset --soft HEAD~1 

然后我排除在提交的文件中。

希望它有帮助。

+0

这有助于我的问题是一个不需要的SQL转储文件(文件大小155mb)被推送(偶然)。 –

+0

文件大小限制取决于您的托管服务提供商。 GitHub在这个大小上有一个限制,对于其他的不同,自己托管的git自然不会有这样的限制。 – 1615903

1

当GitLab服务器正在进行一些更改时,我收到了此消息。第二天推送工作正常。无论如何,正如其他人指出的那样,请与您的维护人员确认一下。

2

在我的情况下,我收到了这条消息,因为该分支在GitLab中被标记为“受保护”。

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

在我的情况下,我们对提交信息挂钩,我们的服务器脚本接受提交他们是否有提交信息"<JIRA ID><Message>"特殊格式。如果各个Jira票据不存在或者在提交消息中有一些特殊符号,它(挂接)会拒绝提交。当我在提交消息中添加/,[,>等等时,我会遇到这个错误,并将其删除。

+0

这个答案不太可能有所帮助,因为原始的海报(以及任何未来访问的其他人)将有一个配置为预接收钩子的不同脚本。 – aronisstav

0

这实际上是在BitBucket的服务器端启用YACC时发生的。 YACC支持在提交消息中提及JIRA问题名称。所以,只要你提交任何东西,至少要保留你的JIRA号码到提交信息中,然后你可以添加你自己的信息。