You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法以testuser身份执行Git提交与推送的问题求助

问题分析与解决办法

从你给出的错误提示里能看到关键问题:

remote: Commit 1234567890 was committed by testuser <testuser@email.com

这里的邮箱格式不完整,缺少了右尖括号>,这才是Bitbucket的“Verify Committer”钩子拒绝推送的核心原因。

第一步:确认本地提交的信息格式

先检查出问题的提交详情,验证格式错误:

git show 1234567890

查看输出里的Author和Committer字段,确认邮箱是否是testuser <testuser@email.com>(必须用完整的<>包裹邮箱)。

第二步:修正历史提交的信息格式

你之前用的git filter-branch命令逻辑没问题,重新执行以下命令修正所有分支和标签的提交信息:

git filter-branch --env-filter '
export GIT_AUTHOR_NAME="testuser"
export GIT_AUTHOR_EMAIL="testuser@email.com"
export GIT_COMMITTER_NAME="testuser"
export GIT_COMMITTER_EMAIL="testuser@email.com"
' --tag-name-filter cat -- --branches --tags

执行完成后,再用git show检查提交信息是否已修正为完整格式。

第三步:修正全局Git配置的错误

你之前的配置命令存在明显错误:重复将user.name设置为邮箱,正确的全局配置应该分开设置名称和邮箱:

git config --global user.name "testuser"
git config --global user.email "testuser@email.com"

不需要额外配置commit.name和commit.email,Git默认会使用user.name和user.email作为提交的作者/提交者信息。

第四步:重新推送修正后的分支

确认所有提交的信息格式正确后,强制推送分支(注意:如果是多人协作分支,需先确认无其他人同时修改):

git push origin main --force

无需添加--no-verify,修正提交信息后钩子验证自然能通过。

额外说明

删除Windows凭据管理器的Git凭据是针对身份验证的操作,和当前提交者验证问题无关,但如果后续遇到推送时的身份验证错误,该操作依然有效。

内容的提问来源于stack exchange,提问作者bocodes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 05:03:29