如何给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内容

相关推荐
优雅的落幕10 分钟前
多线程---线程安全(synchronized)
java·开发语言·jvm
Charlie__ZS11 分钟前
帝可得-设备管理
java·maven·intellij-idea·idea
爱上语文16 分钟前
请求响应:常见参数接收及封装(数组集合参数及日期参数)
java·开发语言·spring boot·后端
孙同学_19 分钟前
【Linux篇】权限管理 - 用户与组权限详解
java·linux·服务器
CQU_JIAKE28 分钟前
926[study]Docker,DHCP
java·开发语言
浪 子31 分钟前
SpringBoot mq快速上手
java·spring boot·spring
程序猿进阶33 分钟前
Tomcat 都有哪些核心组件
java·开发语言·后端·面试·性能优化·tomcat·firefox
码农阿豪1 小时前
极兔速递开放平台快递物流查询API对接流程
java·极兔开放平台·物流查询api
小金的学习笔记1 小时前
Java开发利器:IDEA的安装与使用(下)
java·开发语言·intellij-idea
一只小灿灿1 小时前
Java 网络编程从入门到精通
java·开发语言·网络