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

如何给GitHub的开源项目贡献PR

🎯导读:本文详细介绍了如何向开源项目“代码随想录”贡献自己的题解。首先,需要Fork原项目的仓库至个人GitHub账户,然后解决克隆仓库时可能遇到的SSH密钥问题。接着,按照标准流程对本地仓库进行代码或文档的修改,并提交至个人仓库。最后,通过创建Pull Request的方式向原项目发起合并请求,完成对开源项目的贡献。文中还提供了详细的命令示例和截图指导,帮助读者轻松上手。

文章目录

  • Fork原项目
  • 克隆仓库文件
  • 执行修改
  • 提交修改后的文件到fork的仓库
  • 提交PR

本文通过演示向代码随想录仓库中提交一道题解来讲解如何给开源项目贡献一个PR

Fork原项目

首先 fork 原项目,复制现有的仓库到个人仓库中

在这里插入图片描述

克隆仓库文件

fork成功之后,获取个人仓库 ssh 地址

在这里插入图片描述

通过clone,发现拉取错误

D:\Projects>git clone git@github.com:HelloDam/leetcode-master.git
Cloning into 'leetcode-master'...
fatal: Could not read from remote repository.Please make sure you have the correct access rights
and the repository exists.

原因是缺少秘钥,首先生成一个秘钥,可以通过ssh-keygen -t ed25519 -C "邮箱.com"来生成秘钥,生成密钥过程中会问你要不要设置密码来保护,如果不用设置的话,直接回车即可

D:\Projects>ssh-keygen -t ed25519 -C "邮箱.com"
Generating public/private ed25519 key pair.
Enter file in which to save the key (C:\Users\Admin/.ssh/id_ed25519):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in C:\Users\Admin/.ssh/id_ed25519
Your public key has been saved in C:\Users\Admin/.ssh/id_ed25519.pub
The key fingerprint is:
SHA256:G+/LIBkH62BjQzuLPO0aCpw7Nvdsfafas7SsUCGxZN/9k45 邮箱.com
The key's randomart image is:
+--[ED25519 256]--+
|                 |
|                 |
|    . .          |
| + . o o         |
|o + @ = S        |
|.+.X @ = +       |
|.oB X = + o      |
|.*.B . . B       |
|+o*o.     *E.    |
+----[SHA256]-----+

生成秘钥成功之后,在用户的.ssh目录下会出现id_ed25519id_ed25519.pub两个文件

在这里插入图片描述

到Github中创建一个SSH Key

在这里插入图片描述

复制id_ed25519.pub的内容粘贴到里面,给SSH Key取一个标题

在这里插入图片描述

最后再创建一个config文件,内容如下所示。可以先创建一个config.txt文件,将下面内容复制进去,然后修改User为自己的邮箱号,保存成功之后,删除.txt后缀

在这里插入图片描述

Host github.com
User 邮箱
Hostname ssh.github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_ed25519
Port 443

做完上面的步骤,再拉取项目,就拉取成功了

D:\Projects>git clone git@github.com:HelloDam/leetcode-master.git
Cloning into 'leetcode-master'...
remote: Enumerating objects: 35433, done.
remote: Counting objects: 100% (913/913), done.
remote: Compressing objects: 100% (458/458), done.
remote: Total 35433 (delta 572), reused 747 (delta 455), pack-reused 34520 (from 1)
Receiving objects: 100% (35433/35433), 96.66 MiB | 2.64 MiB/s, done.
Resolving deltas: 100% (24772/24772), done.

执行修改

这里可以是修改了仓库的代码,可以是修改了仓库的文件

提交修改后的文件到fork的仓库

正常提交文件到自己fork的仓库

在这里插入图片描述

提交PR

在这里插入图片描述

输入自己贡献的内容,然后Create pull request

在这里插入图片描述

接下来就是等待原仓库作者,看看是否选择合并代码即可,我们的事到这里就结束了

在这里插入图片描述

原仓库的PR中可以看到我的PR内容

在这里插入图片描述

http://www.lryc.cn/news/498436.html

相关文章:

  • 神经网络-CNN
  • 4.Vue-------this.$set()的使用和详细过程-------vue知识积累
  • 服务器上的常见Linux命令教程
  • 汽车总线协议分析-FlexRay总线
  • Java 集合:强大的数据管理工具
  • FFmpeg 4.3 音视频-多路H265监控录放C++开发十九,ffmpeg复用
  • python之Django连接数据库
  • 基于Springboot+Vue的在线答题闯关系统
  • 声音克隆GPT-SoVITS
  • 【STM32 Modbus编程】-作为主设备读取保持/输入寄存器
  • 前端开发入门指南Day 17:TypeScript高级类型(泛型,类型守卫,Partial<T>和 Required<T>等)
  • flex布局容易忽略的角色作用
  • 如何开发高效的企业内训APP?教育培训系统源码搭建实战详解
  • 【软考网工笔记】网络基础理论——传输层
  • 如何预防服务器后台爆破攻击
  • CMake笔记之在CMakeLists.txt文件中开启Debug模式
  • C++编程:模拟实现CyberRT的DataVisitor和DataDispatcher
  • 【Flutter】WillPopScope组件-监听物理返回键事件自定义返回事件
  • 【sqlserver】mssql 批量加载数据文件 bulk copy使用
  • flinkSql中累计窗口CUMULATE
  • 关于在ubuntu上无法运行EasyConnect的解决方法
  • 【Axure高保真原型】数值条件分组
  • python学习——字符串的拼接操作
  • 多线程篇-8--线程安全(死锁,常用保障安全的方法,安全容器,原子类,Fork/Join框架等)
  • el-select的搜索功能
  • MFC实现全屏功能
  • 网络安全技术详解:虚拟专用网络(VPN) 安全信息与事件管理(SIEM)
  • v-model 根据后端接口返回的数据动态地确定要绑定的变量
  • 图形开发基础之在WinForms中使用OpenTK.GLControl进行图形绘制
  • 离散数学重点复习