当前位置: 首页 > news >正文

[git]GIT提交带GPG签名改动到GITEE的配置方法

什么是GPG?

GPG(GNU Privacy Guard)是一种开源的加密软件,用于数据加密和数字签名。它基于 PGP(Pretty Good Privacy)协议实现,广泛应用于保护电子邮件、文件等数据的隐私和完整性。

在 GPG 中,公钥是密钥对(公钥和私钥)的一部分。密钥对是通过加密算法生成的,公钥可以公开分发,而私钥则需要严格保密。公钥和私钥之间的关系是:用公钥加密的数据只能用对应的私钥解密,而用私钥签名的数据可以用公钥验证。

本地GIT使用GPG签名提交

步骤 1:生成 GPG 密钥
  1. 安装 GPG 工具:

    • Windows:下载并安装 Gpg4win
    • macOS:使用 Homebrew 安装:brew install gnupg
    • Linux:使用包管理器安装:sudo apt install gnupg(Ubuntu/Debian)或 sudo yum install gnupg(CentOS/RHEL)
  2. 生成 GPG 密钥:

    gpg --full-generate-key
    
    • 选择密钥类型:RSA and RSA
    • 密钥长度:4096
    • 设置有效期
    • 输入用户名和邮箱
    • 设置密码(可选)
  3. 查看生成的 GPG 密钥:

    gpg --list-secret-keys --keyid-format LONG
    

    记录 rsa4096/ 后面的部分,这是你的 GPG 密钥 ID。

步骤 2:配置 Git 使用 GPG 签名
  1. 告诉 Git 使用 GPG 签名:

    git config --global user.signingkey <GPG_KEY_ID>
    

    <GPG_KEY_ID> 替换为你的 GPG 密钥 ID。

  2. 设置 Git 默认对所有提交进行签名:

    git config --global commit.gpgsign true
    
  3. 确保 Git 使用的邮箱与 GPG 密钥的邮箱一致:

    git config --global user.email "your.email@example.com"
    
步骤 3:将 GPG 公钥添加到 Gitee
  1. 导出 GPG 公钥:

    gpg --armor --export <GPG_KEY_ID>
    

    <GPG_KEY_ID> 替换为你的 GPG 密钥 ID。

  2. 复制输出的公钥内容,并登录 Gitee 将其添加到 GPG 公钥。

步骤 4:提交代码并签名
  1. 提交并签名修改的代码:

    git commit -S -m "你的提交信息"
    

    使用 -S 表示对提交进行签名。

  2. 推送代码到 Gitee:

    git push origin <branch-name>
    
步骤 5:验证签名
  1. 在 Gitee 上查看提交记录。
  2. 如果提交已成功签名,你会在提交记录看到一个 已验证 的标记,表示提交已通过 GPG 验证。

总结

通过以上步骤,你可以确保你的提交也经过 GPG 签名,增强代码的可信度!


文章转载自:
http://anthrosphere.bdypl.cn
http://bev.bdypl.cn
http://alkalemia.bdypl.cn
http://apocarp.bdypl.cn
http://addisonian.bdypl.cn
http://abaxial.bdypl.cn
http://astigmatical.bdypl.cn
http://cheesemonger.bdypl.cn
http://aspheric.bdypl.cn
http://anatole.bdypl.cn
http://abducent.bdypl.cn
http://arapaima.bdypl.cn
http://adsorbability.bdypl.cn
http://anhwei.bdypl.cn
http://action.bdypl.cn
http://abstinent.bdypl.cn
http://apophthegmatic.bdypl.cn
http://acraldehyde.bdypl.cn
http://aquosity.bdypl.cn
http://caution.bdypl.cn
http://bayeux.bdypl.cn
http://bidonville.bdypl.cn
http://bumbledom.bdypl.cn
http://catechu.bdypl.cn
http://alphanumeric.bdypl.cn
http://billingual.bdypl.cn
http://betacam.bdypl.cn
http://caltrop.bdypl.cn
http://bilingual.bdypl.cn
http://brecciate.bdypl.cn
http://www.dtcms.com/a/33009.html

相关文章:

  • 骁勇善战的量化利器:多因子模型【量化理论】
  • Vue 中单向数据流原则
  • 2025-spring boot 之多数据源管理
  • HyperGraph(超图)
  • 【Redis数据结构】ziplist 压缩列表
  • nginx 反向代理 配置请求路由
  • 【网络编程】广播和组播
  • 【RK3588嵌入式图形编程】-SDL2-构建交互式按钮
  • 基于python+django的宠物商店-宠物管理系统源码+运行步骤
  • J4打卡—— ResNet 和 DenseNet结合实现鸟类分类
  • 用AI写游戏3——deepseek实现kotlin android studio greedy snake game 贪吃蛇游戏
  • 【quicker】调节PPT指定字号字体大小/快速调节WPS的PPT字体大小
  • 三级分类bug解决
  • 作用域的知识点总结
  • Day6 高精度加减算法+洛谷讲解
  • 开源RAG主流框架有哪些?如何选型?
  • 算法系列之分治算法
  • 从底层驱动到 OpenCV:深入解析 Linux 摄像头完整技术栈
  • 安全生产月安全知识竞赛主持稿串词
  • 基于Python和Neo4j开发的医疗辅助诊断系统的详细实现步骤和代码示例
  • Python--函数进阶(上)
  • Unity制作游戏——前期准备:Unity2023和VS2022下载和安装配置——附安装包
  • ESP32S3:解决RWDT无法触发中断问题,二次开发者怎么才能使用内部RTC看门狗中断RWDT呢?
  • 力扣热题100——滑动窗口
  • 【java】类和对象
  • 使用 AndroidNativeEmu 调用 JNI 函数
  • k8s学习记录:环境搭建(基于Kubeadmin)
  • 从入门到精通Rust:资源库整理
  • 【YOLOv11改进- 主干网络】YOLOv11+RepViT: 从ViT的角度重新审视Mobile的CNN助力YOLOv11有效涨点;
  • 解决Spring Boot中Druid连接池“discard long time none received connection“警告