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

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

文章目录

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

Fork原项目

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

克隆仓库文件

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

通过clone,发现拉取错误

java 复制代码
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"来生成秘钥,生成密钥过程中会问你要不要设置密码来保护,如果不用设置的话,直接回车即可

shell 复制代码
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后缀

shell 复制代码
Host github.com
User 邮箱
Hostname ssh.github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_ed25519
Port 443

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

java 复制代码
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内容

相关推荐
吴声子夜歌1 分钟前
状态机——Spring State Machine
java·后端·spring
XS03010632 分钟前
并发编程二
java·开发语言
雪度娃娃33 分钟前
转向现代C++——优先选用限定作用域的枚举型别,而非不限作用域的枚举型别
java·jvm·c++
不是光头 强36 分钟前
Java 后端实战进阶:从踩坑到架构的系统化笔记
java·笔记·架构
ID_1800790547344 分钟前
企业级淘宝评论 API最简说明,JSON 返回示例
java·服务器·前端
Plan-C-1 小时前
二叉树的遍历
java·数据结构·算法
历程里程碑1 小时前
54 深入解析poll多路复用技术
java·linux·服务器·开发语言·前端·数据结构·c++
无限进步_1 小时前
【C++】可变参数模板与emplace系列
java·c++·算法
逐光老顽童2 小时前
Java 内存模型深度解析与 JVM 调优实战指南
java·架构
写了20年代码的老程序员2 小时前
Excel 导入导出为什么总是把后端逼成字段搬运工
java·excel