Git“预接收钩子已拒绝”错误
几乎地球上的每个开发人员都听说过或曾经使用过Git和其他相关的Git服务,例如通过GitHub、GitLab、GoGs等托管平台。
在Git托管服务(如GitHub)上执行Git操作时,您可能会遇到“Git pre-receive hook declined”错误消息。
这对于Git的新用户来说尤其不方便,因为他们不知道如何排除故障。在这篇文章中,我们将探讨这个错误意味着什么,以及如何修复它,以允许你执行所需的Git操作。
是什么导致这个错误?
“pre-receive hook declined”错误主要发生在您试图将更改推送到分支或repo时,而您没有足够的权限。
它主要表示预接收钩子拒绝了指定的提交。预接收钩子是一个脚本,它分析传入的提交,并决定它们是否允许它进入分支。
这个错误有各种各样的原因,包括:
推到主分支
除非您使用的是个人存储库,否则大多数公共存储库都将主分支或主分支标记为受保护。
这意味着不允许您将更改直接推入主分支。repo管理员的角色是验证您(从另一个分支)推送的更改,接受或拒绝它们,并最终将它们合并到主分支中。
要修复此错误,您可以将主分支标记为未受保护(如果您拥有该repo),或者将其推送到正确的分支。
您还可以联系存储库的管理员,以便在必要时允许您推送到主分支。
注意:对于大多数情况,只建议创建一个pull请求,然后等待管理员批准您的更改。然后可以将更改合并到主分支中,而无需实际修改主分支的权限。
推送到受保护分支
除了主分支之外,您还可以尝试将更改推送到标记为受保护的另一个分支。
在这种情况下,您可以将分支标记为未受保护的,也可以请求将更改推入受保护的分支的许可。
Non-Fast-Forward推
在某些情况下,其他开发人员可能会将提交推送到与您相同的分支。如果您没有获取并合并新更改,那么尝试推送新更改可能会导致此错误。
要解决这个问题,使用“git pull”命令来更新你的分支并修复这个错误。
$ git pull
结论
在本教程中,我们学习了在向git仓库推送更改时出现的“git pre-receive hook declined”错误。这主要是由于目标分支上的权限不足或推送到错误的分支造成的。只需检查要推送到哪个分支或修改该分支的权限。