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

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'

这是怎么呢


当前回答

对我来说,一切都很顺利,直到Bitbucket今天(2020年4月21日)自动更改了他们的政策。这恰好与今天推出的新功能“工作区”(Workspaces)相一致,所以我怀疑它与此有关。

解决方法:我(作为管理员)按照说明在用户界面中添加电子邮件地址到用户(您正在使用的电子邮件可以在git config——list中找到)

其他回答

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

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

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

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

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

如果在一个公司的gitlab/ github中,你试图将更改推到一个分支/master, Pre-hook可能意味着你错过了一些输入到提交消息中的参数。

在我的情况下,随着消息,我需要在提交文件中添加bug id, bug url和审批者,然后推送到分支并放置合并请求。

希望这对你有所帮助,当你写提交信息的时候,问问你的导师/朋友提交信息中的要求。

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

对我来说,错误在于项目没有创建任何分支,而我的角色是开发人员,所以我不能创建任何分支,请求他们给我相关的权限和一切都井然有序!