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

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。

你应该看看日志。我只是遇到了同样的错误,并从日志中意识到这是因为我有一个纱线。Lock和package-lock.json

就我而言,我自己管理这个项目,但最近将其升级到爱好者级别。在任何情况下,通过herokus浏览器界面检查日志,它有一个关于节点版本(它是一个express应用程序)没有在package.json中定义的非常明确的消息。他们有一个heroku页面的链接,概述了如何修复它,它成功了。

无论如何,我只是把这个加到我的包里。Json,没有进一步的问题!

  "engines": {
    "node": "16.x",
    "npm": "6.x"
  },

为了明确起见,我先检查了我的节点版本和npm版本。我的节点版本是16,但我的npm版本是7。我决定让npm定义为6。只是因为这是heroku页面上列出的。没有遇到任何问题。

$ node --version

$ npm --version

这是heroku帮助页面的链接。

https://devcenter.heroku.com/articles/nodejs-support#specifying-a-node-js-version

在我的例子中,这是因为我不小心在未提交的推送中添加了一个巨大的文件,无论我之后做什么拉或重置或rm,我都无法摆脱它。

我的肮脏解决方案,但可行的解决方案是重命名当前目录,重新克隆目录到本地,并手动反映更改到重新克隆的本地目录…

这听起来不太好,但确实有效……