解决 GitLab: You are not allowed to force push code to a protected branch on this project问题

将Hexo博客部署到GitLab的时候报如下错误

1
2
3
4
5
6
7
8
9
10
11
remote: GitLab: You are not allowed to force push code to a protected branch on this project.
To gitlab.com:himmy/himmy.gitlab.io.git
! [remote rejected] HEAD -> master (pre-receive hook declined)
error: failed to push some refs to 'git@gitlab.com:himmy/himmy.gitlab.io.git'
FATAL Something's wrong. Maybe you can find the solution here: http://hexo.io/docs/troubleshooting.html
Error: Spawn failed
at ChildProcess.<anonymous> (D:\hexo\blog\node_modules\hexo-util\lib\spawn.js:52:19)
at emitTwo (events.js:126:13)
at ChildProcess.emit (events.js:214:7)
at ChildProcess.cp.emit (D:\hexo\blog\node_modules\cross-spawn\lib\enoent.js:40:29)
at Process.ChildProcess._handle.onexit (internal/child_process.js:198:12)

Click and drag to move

这是因为项目分支master设置了保护所致,是为了防止别人乱提交代码设置的

可以到项目的Settings页面下找到Protected Branches,有如下两种解决方法

1.可以直接点该分支旁的Unprotect按钮,解除保护,但是这种方法不推荐

2.第二种方法是在Allowed to push下选择允许那些角色或具体那些用户可以提交,在这里可以选择你自己

设置完毕后再重新提交就成功了。