Gerrit分支是否设所有者?提交权限与评审归属异常咨询
Gerrit分支权限与评审身份问题解答
关于分支所有者
Gerrit本身没有默认的「分支所有者」机制,但可以通过精细权限配置实现类似分支级别的专属管控:
- 你可以在Gerrit的权限设置中,针对特定分支(比如
refs/heads/X)给指定用户/组分配专属权限(如推送、评审管理等),以此模拟“分支所有者”的权限效果。
关于评审所有者与提交作者的自动分配原因
你遇到的评审所有者为B、提交作者为A的情况,核心原因和Git提交元数据、Gerrit的权限逻辑有关:
- 本地Git身份配置未更新:你切换到用户A操作时,本地Git仓库的
user.name和user.email可能还是用户B的配置——Git默认用本地配置作为提交的committer(提交者)信息,而Gerrit的评审(Change)所有者默认绑定的是提交的committer身份。 Forge Committer Identity权限的作用:这个权限是允许你推送的提交中,committer可以不是当前操作的Gerrit用户(也就是允许你“伪造”提交者身份),但它不会自动修改你本地Git生成的提交元数据。你用A操作时,可能手动指定了author(作者)为A,但committer还是B,所以Gerrit把评审所有者设为了B。
解决建议
- 切换用户时,先更新本地Git身份配置:
git config user.name "用户A" git config user.email "a@your-domain.com" - 如果要修改已有提交的
committer信息,可通过变基操作:git rebase -i HEAD~1 # 编辑最近1次提交 # 在编辑器中把提交行的pick改成edit,保存退出后执行: git commit --amend --committer="用户A <a@your-domain.com>" git rebase --continue
内容的提问来源于stack exchange,提问作者Owen
相关产品推荐
相关产品推荐

