代码托管(二)git(1)介绍

一、git相关

git github gitlub

二、gitlub签名认证

使用ssh克隆代码,使用gpg签名提交代码。

1、ssh签名

一对公钥和密钥,公钥复制到gitlub上。步骤如下

1.1、先在本地生成密钥和公钥

(1)配置用户名和邮箱

git config --global user.name "moxun"
git config --global user.email "xxx@xx.com"

(2) 生成公私钥

两种加密方式:ed25519(推荐)和rsa

ssh-keygen -t ed25519 -C "xxx@xx.com"
ssh-keygen -t rsa -C "xxx@xx.com"

按三次回车enter键即可生成,这里一般不需要添加名称和密码 

(3)打开文件查看,路径为C:\Users\用户名\.ssh

1.2、将公钥复制到gitlub上

上面第一步会生成两个加密文件,如我使用的是ed25519,则id_ed25519文件是私钥,id_ed25519.pub是公钥,打开,全选复制到gitlub上即可。

1.3、本地设置git全局生效
git config --global gpg.format ssh
#git config --global user.signingkey ~/.ssh/id_ed25519.pub
git config --global user.signingkey ~/.ssh/你的文件名称git commit -S -m "My commit msg"
2、gpg签名

配置git提交为gpg签名,提交代码后gitlub上将显示verifiled。

2.1、下载gpg

GnuPG - Download

这是个可视化工具,下载后一步步安装即可(建议安装到默认目录即可)。

cmd命令行输入gpg --version,执行成功则说明安装成功。 

2.2、生成密钥

cmd命令行(或者idea终端或者git bash命令行)输入:

gpg --full-gen-key

弹出框一步步输入即可:

(1)

 $ gpg --full-gen-key
gpg (GnuPG) 2.4.4-unknown; Copyright (C) 2024 g10 Code GmbH
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.Please select what kind of key you want:(1) RSA and RSA(2) DSA and Elgamal(3) DSA (sign only)(4) RSA (sign only)(9) ECC (sign and encrypt) *default*(10) ECC (sign only)(14) Existing key from card
Your selection?

选择1

(2)

RSA keys may be between 1024 and 4096 bits long.
What keysize do you want? (3072)

输入4096

(3)

Please specify how long the key should be valid.0 = key does not expire<n>  = key expires in n days<n>w = key expires in n weeks<n>m = key expires in n months<n>y = key expires in n years
Key is valid for? (0)
Key does not expire at all
Is this correct? (y/N) y

(4)输入名称和邮箱

(5)

GnuPG needs to construct a user ID to identify your key.Real name: Zoomie Developer
Email address: zoomie.developer@zoom.us
You selected this USER-ID:"Zoomie <zoomie.developer@zoom.us>"Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? 

输入O确认。弹框输入密码,可输入也可以不输入。完毕

2.3、查询刚才生成的密钥

(1)方法1

gpg --list-secret-keys --keyid-format LONG <EMAIL>
#将 <EMAIL> 替换为生成密钥时使用的电子邮件地址:如:gpg --list-secret-keys --keyid-format LONG wtyy@qq.com

在输出中,/后面的即为私钥,如我输出如下,则私钥为5FEC960A78DF29F6,

sec   rsa4096/5FEC960A78DF29F6 2024-04-19 [SC]2C8974FE36C8386038AD3F4B5FEC960A78DF29F6
uid                 [ultimate] tina.zhang <tina.zhang@zoom.us>
ssb   rsa4096/371D4A944D473731 2024-04-19 [E]

(2)方法2 

打开第一步下载的gpgwin可视化工具也可以查看到

2.4、使用密钥生成公钥
gpg --armor --export 你的密钥

复制输出的公钥,包括 BEGIN PGP PUBLIC KEY BLOCKEND PGP PUBLIC KEY BLOCK 行,粘贴到gitlub的gpg设置中即可。

2.5、本地设置git全局生效
git config --global commit.gpgsign true
2.6、idea配置gpg

settings-->git-->configure GPG key,点击会自动弹出来密钥,确认即可。

2.7、git全局配置gpg路径

往往还需要配置git的gpg路径:

git config --global gpg.program "C:\Program Files (x86)\GnuPG\bin\gpg.exe"
#具体路径参考第一步安装的路径

否则commit或者push会报错:

gpg: skipped "88F1EA372F568EBA": No secret key
gpg: signing failed: No secret key
error: gpg failed to sign the data
fatal: failed to write commit object

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/826557.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MYSQL之增删改查(中)

前言&#xff1a; 以下是MySQL最基本的增删改查语句&#xff0c;很多IT工作者都必须要会的命令&#xff0c;也 是IT行业面试最常考的知识点&#xff0c;由于是入门级基础命令&#xff0c;所有所有操作都建立在单表 上&#xff0c;未涉及多表操作。 4、“查”——之单表查询 My…

Gamba:将高斯溅射与Mamba结合用于单视图3D重建

Gamba: Marry Gaussian Splatting with Mamba for Single-View 3D Reconstruction Gamba&#xff1a;将高斯溅射与Mamba结合用于单视图3D重建 Qiuhong Shen11  Xuanyu Yi31 Zike Wu31  Pan Zhou2,42 Hanwang Zhang3,5 沈秋红 1 易轩宇 3 吴子可 3 潘周 2,4 2 张汉旺 3,5Shu…

C语言开源库iniparser解析ini文件

1 ini文件介绍 INI&#xff08;Initialization File&#xff09;文件是一种简单直观的数据存储格式&#xff0c;常用于配置应用程序的初始化设置。这种文件通常包含若干个节&#xff08;section&#xff09;和键值对&#xff08;key-value pairs&#xff09;。INI文件的每一部…

Spring AOP(面向切面编程)

1.Spring AOP 简介 1.1 AOP概述 AOP 为 Aspect Oriented Programming 的缩写&#xff0c;意思为面向切面编程, 是通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP 是 OOP 的延续&#xff0c;是Spring框架中的一个重要内容&#xff0c;是函数式编程的一…

FPGA Quartus IP核 打开使用

两种Quartus版本下的IP核&#xff0c;从使用者的角度来看仅仅是配置界面不同&#xff0c;在参数设置和使用方法上基本一致。本文以“MegaWizard Plug-In Manager”中的FIR Compiler IP核使用为例。 Quartus的FIR IP核属于收费IP&#xff0c;如果是个人学习使用需要对IP核单独破…

C++ 深入理解 继承

本篇文章将谈谈一下几个问题&#xff1a; 1.基类和派生类对象赋值转换 2.继承中的作用域 3.派生类的默认成员函数 4.复杂的菱形继承及菱形虚拟继承 5.其他 1.基类和派生类对象赋值转换 1.派生类对象 可以赋值给 基类的对象 / 基类的指针 / 基类的引用。这里有个形象的说法叫切…

【电控笔记2.5】位置闭环回路设计

总结 List item 位置控制器 加入前馈 总结

SpringBoot基于JavaWeb的菜鸟驿站快递管理系统ssm

前端&#xff1a;vue.jsElementUI 编程语言: java 框架&#xff1a; ssm/springboot 详细技术&#xff1a;springboot springbootvueMYSQLMAVEN 数据库: mysql5.7 数据库工具&#xff1a;Navicat/SQLyog都可以 ide工具&#xff1a;IDEA 或者eclipse 对菜鸟驿站快递管理系统设计…

会议文字记录工具【钉钉闪记】

当开会时&#xff0c;需要文字记录会议内容&#xff0c;但是打字又慢&#xff0c;可以使用钉钉闪记。 钉钉工作台直接搜索-钉钉闪记

ADSP-21479的开发详解九(CCES开发详解)

硬件准备 ADSP-21479EVB开发板&#xff1a; 产品链接&#xff1a;https://item.taobao.com/item.htm?id555500952801&spma1z10.5-c.w4002-5192690539.11.151441a3Z16RLU AD-HP530ICE仿真器&#xff1a; 产品链接&#xff1a;https://item.taobao.com/item.htm?id38007…

【PythonCode】力扣Leetcode16~20题Python版

【PythonCode】力扣Leetcode16~20题Python版 前言 力扣Leetcode是一个集学习、刷题、竞赛等功能于一体的编程学习平台&#xff0c;很多计算机相关专业的学生、编程自学者、IT从业者在上面学习和刷题。 在Leetcode上刷题&#xff0c;可以选择各种主流的编程语言&#xff0c;如C…

React【Day4下+5】

环境搭建 使用CRA创建项目&#xff0c;并安装必要依赖&#xff0c;包括下列基础包 Redux状态管理 - reduxjs/toolkit 、 react-redux路由 - react-router-dom时间处理 - dayjsclass类名处理 - classnames移动端组件库 - antd-mobile请求插件 - axios 配置别名路径 1. 背景知识…

【Linux 进程间通信】管道

文章目录 1.System V 标准介绍2.进程间通信的方式&#xff1f;3.管道&#xff08;匿名管道&#xff09; 1.System V 标准介绍 ①&#x1f34e; System V 实际上就是一个标准&#xff08;“ 行业领头羊制定出来的专利 " &#xff09; 2.进程间通信的方式&#xff1f; …

linux下摄像头设置固定的设备名

目录 2.热插拔udev机制 3.设置udev的规则 1.查看usb ID 2. 查看usb设备的信息 3.编译规则 4.拓展 1.问题的出现 通过我之前的文章配置完摄像头的开机自启动之后我们会发现有的时候会出现启动不了的情况&#xff0c;通过实验我发现是摄像头的设备名发生了改变&#xff0c;…

ADSP-21479的开发详解五(AD1939 C Block-Based Talkthru 48 or 96 kHz)音频直通

硬件准备 ADSP-21479EVB开发板&#xff1a; 产品链接&#xff1a;https://item.taobao.com/item.htm?id555500952801&spma1z10.5-c.w4002-5192690539.11.151441a3Z16RLU AD-HP530ICE仿真器&#xff1a; 产品链接&#xff1a;https://item.taobao.com/item.htm?id38007…

开源数据集分享——猫脸码客

开源数据集分享&#xff0c;让数据更自由流通——猫脸码客带你走进数据的新世界 在数字化时代的浪潮中&#xff0c;数据已经成为推动社会进步的重要力量。然而&#xff0c;数据的获取与利用往往受到种种限制&#xff0c;使得许多有价值的信息难以被充分挖掘。幸运的是&#xf…

适配器模式【结构型模式C++】

1.概述 适配器模式是一种结构型设计模式&#xff0c; 又称为变压器模式、包装模式&#xff08;Wrapper&#xff09; 将一个类的接口变换成客户端所期待的另一种接口&#xff0c;从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。 2.结构 Target&#xff1a;适配…

Leetcode算法训练日记 | day31

专题九 贪心算法 一、分发饼干 1.题目 Leetcode&#xff1a;第 455 题 假设你是一位很棒的家长&#xff0c;想要给你的孩子们一些小饼干。但是&#xff0c;每个孩子最多只能给一块饼干。 对每个孩子 i&#xff0c;都有一个胃口值 g[i]&#xff0c;这是能让孩子们满足胃口的…

【算法一则】矩阵置零 【矩阵】【空间复用】

题目 给定一个 m x n 的矩阵&#xff0c;如果一个元素为 0 &#xff0c;则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 示例 1&#xff1a; 输入&#xff1a;matrix [[1,1,1],[1,0,1],[1,1,1]] 输出&#xff1a;[[1,0,1],[0,0,0],[1,0,1]]示例 2&#xff1a; …

冰达ROS机器人快速使用指南

欢迎来到《冰达ROS机器人极简使用指南》 Q&#xff1a;这份教程适合谁&#xff1f; A&#xff1a;适合完全0基础新手&#xff0c;需要快速跑起来机器人的基本功能。也适合技术大佬需要快速的了解冰达ROS机器人的使用方法。 Q&#xff1a;这份教程内容很少&#xff0c;是不是…