本来想给自己的 hexo 好好归下档的,结果在半途发现完全没法。因为整个 hexo 都托管在自建的 gitlab 服务器上,所以只好回滚到归当前的提交:

1
2
leazhi@leazhi-ubuntu2310:/data/gitlab/hexo$ git reset 8014802973d1260d24e7e1b52551402e0bdca28c --hard
HEAD 现在位于 8014802 add T and R commands

由于这个项目只有我自己一个人在用,所以接下来就使用强制推送,也就是将回滚后的版本重新提交大 gitlab ,充当主线,结果就报错:

1
2
3
4
5
6
leazhi@leazhi-ubuntu2310:/data/gitlab/hexo$ git push -f origin main 
总共 0(差异 0),复用 0(差异 0),包复用 0
remote: GitLab: You are not allowed to force push code to a protected branch on this project.
To gitlab.xxxxxr.com:brothers/hexo.git
! [remote rejected] main -> main (pre-receive hook declined)
error: 推送一些引用到 'gitlab.xxxxxr.com:brothers/hexo.git' 失败

解决方法

登陆 gitlab 网页端,进入项目,找到 设置 —> 仓库,然后在右侧仓库设置页面找到 受保护分支,将下面的允许强行推送启用下就可以了,如图:

接下来,返回命令行终端,再次强行推送:

1
2
3
4
eazhi@leazhi-ubuntu2310:/data/gitlab/hexo$ git push -f origin main 
总共 0(差异 0),复用 0(差异 0),包复用 0
To gitlab.xxxxxr.com:brothers/hexo.git
+ 74f9670...8014802 main -> main (forced update)