新分支首次提交时Commitizen报错“origin/HEAD..HEAD无提交”求解决
问题解决步骤
先确认当前操作分支:你执行
git checkout -b fix/my-new-branch后应该自动切换到新分支,但你的git branch输出显示当前在main分支,先执行git checkout fix/my-new-branch确保在目标分支上进行提交操作。为新分支关联远程基准分支:
新分支是本地创建的,尚未与远程仓库建立关联,commitizen-branch钩子默认会尝试对比origin/HEAD..HEAD的提交范围,但此时远程没有该分支,且origin/HEAD指向远程main分支,导致无有效提交范围。
解决方法:- 拉取远程main分支的最新内容:
git fetch origin main - 为本地新分支设置跟踪基准:
git branch -u origin/main fix/my-new-branch
或者在第一次推送分支时加上跟踪参数:git push -u origin fix/my-new-branch
- 拉取远程main分支的最新内容:
自定义commitizen-branch钩子的基准分支:
如果不想依赖远程分支关联,也可以在pre-commit配置中直接指定基准分支,修改配置如下:
--- repos: - repo: https://github.com/commitizen-tools/commitizen rev: v2.37.1 hooks: - id: commitizen - id: commitizen-branch stages: [commit-msg] args: [--base-branch, 'main']
这样钩子会以本地main分支作为基准进行校验,无需依赖远程分支状态。
内容的提问来源于stack exchange,提问作者Chris
相关产品推荐
相关产品推荐

