Git 推送错误的用户和预接收挂钩被拒绝
Git push with wrong user and pre-receive hook declined
我发现和别人遇到的不一样。我有两个问题:
- Git 用名为 'v3' 的用户推送(这个用户不是我的)。命令:
但是 Git 使用名为 'v3' 的用户推送。
- 在我去掉用户'v3'的'push'权限后,当我运行
git push
时,它告诉我'pre-receive hook declined'
错误信息:
Total 9 (delta 4), reused 0 (delta 0)
remote: GitLab: You don't have permission
error: failed to push some refs to 'http://gitlab.zank.mobi/zank/zank_live_service.git'
To http://gitlab.zank.mobi/zank/zank_live_service.git
! refs/heads/develop:refs/heads/develop [remote rejected] (pre-receive hook declined)
您可以进行交互式变基来更改提交作者。
git rebase -i {commit hash here}
然后把commit前面的action改成edit and save。
保存后使用以下命令更改作者并完成变基。
git commit --amend --author="New Author Name <newemail@address.com>"
git rebase --continue
然后您可以使用 git log
检查您的提交。上述提交中的作者应该是新作者。
推送时使用git push --force-with-lease
更新
"pre-receive hook declined" - 此错误可能是由于以下答案中提到的原因造成的。
- Git error when trying to push -- pre-receive hook declined
有一个脚本挂钩,它检查被推送的提交是否足够好,如果不够好,它会拒绝它并给出这个错误。因此,请检查 git log
以获取您正在推送的提交,并在此处检查是否有任何提交来自没有权限的用户,或者其中一个提交中的某些代码会触发该错误。
你的提交不符合版本库维护者的规则,你只需要
git reset --hard HEAD ~ 1
之后根据维护者的规则承诺就可以了
我发现和别人遇到的不一样。我有两个问题:
- Git 用名为 'v3' 的用户推送(这个用户不是我的)。命令:
但是 Git 使用名为 'v3' 的用户推送。
- 在我去掉用户'v3'的'push'权限后,当我运行
git push
时,它告诉我'pre-receive hook declined'
错误信息:
Total 9 (delta 4), reused 0 (delta 0)
remote: GitLab: You don't have permission
error: failed to push some refs to 'http://gitlab.zank.mobi/zank/zank_live_service.git'
To http://gitlab.zank.mobi/zank/zank_live_service.git
! refs/heads/develop:refs/heads/develop [remote rejected] (pre-receive hook declined)
您可以进行交互式变基来更改提交作者。
git rebase -i {commit hash here}
然后把commit前面的action改成edit and save。 保存后使用以下命令更改作者并完成变基。
git commit --amend --author="New Author Name <newemail@address.com>"
git rebase --continue
然后您可以使用 git log
检查您的提交。上述提交中的作者应该是新作者。
推送时使用git push --force-with-lease
更新
"pre-receive hook declined" - 此错误可能是由于以下答案中提到的原因造成的。
- Git error when trying to push -- pre-receive hook declined
有一个脚本挂钩,它检查被推送的提交是否足够好,如果不够好,它会拒绝它并给出这个错误。因此,请检查 git log
以获取您正在推送的提交,并在此处检查是否有任何提交来自没有权限的用户,或者其中一个提交中的某些代码会触发该错误。
你的提交不符合版本库维护者的规则,你只需要
git reset --hard HEAD ~ 1
之后根据维护者的规则承诺就可以了