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

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中找到)

其他回答

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

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

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

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

git reset --soft HEAD~1

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

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

我的问题是文件大小,试图将一个项目从gitlab迁移到github,错误确实提示了我,指向这个页面https://docs.github.com/en/repositories/working-with-files/managing-large-files/moving-a-file-in-your-repository-to-git-large-file-storage

使用的命令是:

Git LFS migrate import——everything——above=100kb

在此之后,我能够git push——mirror http:…

在我的例子中,在Gitlab的一个项目中有一个Committer限制:

用户只能将通过自己的验证电子邮件提交的提交推到此存储库。

因为我还在我的机器上配置了SSH,所以我的global_user_email在git配置文件中更新了我的机器地址,因此远程不允许推送。

你可以在以下网址找到:

Gitlab ->设置->存储库->推送规则

只要禁用提交限制,它就会工作。

在我的例子中,我们有用于提交消息的钩子,我们的服务器脚本接受提交,如果它们有提交消息的特殊格式“<JIRA ID><消息>”。如果相应的Jira ticket不存在或在提交消息中有一些特殊的符号,它(钩子)拒绝提交。当我在提交消息中添加/,[,>等时,我面临这个错误,删除这些工作很好。