最近用Gitlab的时候push报错:

remote: GitLab: Commit message does not follow the pattern '^(fix|feat|refactor|chore|style|docs|test):([\s\S]){5,}$|^Merge|^Resolve|^Feat'
...
master -> master (pre-receive hook declined)

报错的意思是,我要按照它这个格式来写commit对应的信息,比如feat: add feature

正常Github里提交信息,commit里应该想写啥就写啥的,这里会报错就是因为Gitlab设置了Push Rules。解决办法有两个,如下所示:


一. 改变Project的项目设置

参考:https://docs.gitlab.com/ee/push_rules/push_rules.html#:~:text=On%20the%20left%20sidebar%2C%20select%20Settings%20%3E%20Repository.,Select%20Save%20push%20rules.

如果是自身创建的仓库,那么直接进入Gitlab里的仓库,进行如下操作:
在这里插入图片描述
如下图所示,把这行已经存在的命令删掉即可,然后Save Push Rules即可:
在这里插入图片描述


二. 修改之前提交的Commits

参考:https://gerrit-review.googlesource.com/Documentation/error-push-fails-due-to-commit-message.html

核心思路是修改自己的commit信息,让它符合仓库的命令格式。如果是last commit,可以直接写这样的,来修改上一次的提交信息:

 $ git commit --amend

如果是更早的commits,需要使用interactive git rebase,具体的我没做过,不多说了。


Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐