当我尝试推动我已经提交的更改时,我得到以下错误…

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'

这是怎么呢


当前回答

您应该在git@mycogit/cit_pplus.git上询问维护该回购的人员。

你的提交被该repo的pre-receive钩子拒绝了(这是一个用户可配置的脚本,用于分析传入的提交,并决定它们是否足够好,可以接受到repo中)。

让那个人更新钩子也是个好主意,这样它就会打印出拒绝的原因。

如果维护者是您自己,那么您在服务器端的设置似乎遇到了问题。到时请分享更多信息。

其他回答

Bitbucket:在设置中检查分支权限(可能是“拒绝所有”)。 如果这不起作用,只需将您的分支克隆到一个新的本地分支,将更改推到远程(将创建一个新的远程分支),并创建一个PR。

这是一个相当老的问题,已经有很多答案了。但我想分享的解决方案,为我工作时与bitbucket(没有管理权限)。我的大多数同事(除了一个人)都没有遇到任何问题。我们俩突然不能再推到精确的分支了(我不知道真正的原因)。 解决方案是:

删除与有问题分支相关的现有拉请求, 删除服务器端的分支, 从本地重新推到远程回购,然后, 再次创建拉取请求。

文件大小很重要。单个文件的限制为~120MB。在我的例子中,使用Visual Studio的.gitignore列出了该文件,但该文件仍然被提交。当使用git cli时,我们可以获得关于错误的更多详细信息。

预收勾谢绝的原因是档案大。基本上是在验证推送。

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

git reset --soft HEAD~1

然后,我从提交中排除了该文件。

注意: 使用HEAD~N返回到前N次提交。(即3、4) 始终使用——软开关来维护文件夹中的更改

在我的例子中,我收到这条消息是因为这个分支在GitLab中被标记为“受保护”。

简单快捷的解决方法:-

Git commit -m "branch_name:添加Git脚本"