You need to enable JavaScript to run this app. 如何添加并签名Git note并推送至启用GPG校验的BitBucket仓库
优惠活动
大模型
产品
解决方案
定价
更多

如何添加并签名Git note并推送至启用GPG校验的BitBucket仓库

Git Note 带签名推送解决方案

问题根因

Git Note的增删改操作会生成独立的提交,归属于refs/notes/commits引用,BitBucket开启全局提交签名强制校验后,所有引用下的提交都需要附带有效GPG签名,未签名的note提交会被预接收钩子拦截。

操作步骤

  • 第一步:完成本地GPG签名基础配置
    先确认当前Git环境已绑定正确的GPG密钥,执行以下命令配置(构建机场景建议配置仓库级参数):

    # 配置仓库级用户名(与GPG密钥绑定的用户名一致)
    git config --local user.name "你的用户名"
    # 配置仓库级邮箱(与GPG密钥绑定的邮箱一致)
    git config --local user.email "你的邮箱"
    # 配置要使用的GPG密钥ID
    git config --local user.signingkey 你的GPG密钥ID
    # 开启提交自动签名
    git config --local commit.gpgsign true
    # 无交互构建场景添加GPG_TTY环境变量,避免密码弹窗阻塞
    export GPG_TTY=$(tty)
    
  • 第二步:生成带GPG签名的Git Note
    git notes命令原生支持-S/--gpg-sign参数,可在添加note时直接对对应提交签名:

    git notes append --file=notes.txt -S
    

    若本地已生成未签名的note提交,先重置本地note引用后再重新添加:

    # 重置本地notes引用到远程最新版本,清除未签名的本地变更
    git update-ref refs/notes/commits origin/refs/notes/commits
    # 重新生成带签名的note
    git notes append --file=notes.txt -S
    
  • 第三步:推送note到远程仓库
    执行原有推送命令即可,签名后的note提交会通过BitBucket的校验:

    git push origin 'refs/notes/*'
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 13:42:02